Я выполнил базовый пользовательский контроль WPF для всех моих пользовательских элементов для наследования. В этом базовом классе usercontrol я хочу иметь кнопку, связанную с событием клика. Я сделал это так:WPF Button динамически добавлен: события не срабатывают
public class MBaseUserControl : UserControl
{
//[...]
protected override void OnContentChanged(object oldContent, object newContent)
{
base.OnContentChanged(oldContent, newContent);
StackPanel mainPanel = new StackPanel();
EditButton = new Button();
EditButton.Height = EditButton.Width = 24;
EditButton.MouseEnter += EditButton_MouseEnter;
EditButton.MouseLeave += EditButton_MouseLeave;
EditButton.Click += new RoutedEventHandler(EditButton_Click);
EditButton.Background = Brushes.Transparent;
EditButton.BorderBrush = Brushes.Transparent;
EditButton.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
EditButton.VerticalAlignment = System.Windows.VerticalAlignment.Top;
StackPanel buttonPanel = new StackPanel();
Image editButtonImage = ImageTools.ConvertDrawingImageToWPFImage(Properties.Resources.edit, 24, 24);
buttonPanel.Children.Add(editButtonImage);
EditButton.Content = buttonPanel;
mainPanel.Children.Add(EditButton);
//Add this to new control
((IAddChild)newContent).AddChild(mainPanel);
SetCMSMode(false);
}
}
Но когда я нажимаю кнопку на GUI, ничего не стреляет (ни событие мыши или щелчок). Что я пропустил?
Спасибо заранее!
Я бы предпочел изменить базовый UserControl, чтобы иметь «статические» элементы управления, такие как кнопка редактирования по умолчанию, таким образом, вы могли бы привязать их к командам, определенным в базе, и не беспокоиться о подключении обработчиков событий, когда контент изменения. Вы можете добавить ContentControl в свой стиль по умолчанию и связать его с DependencyProperty на базе. – Xtr
Мои навыки WPF, кажется, не настолько велики, чтобы понять, что вы будете делать. У вас есть пример этого? – cdie
Возможно, вам стоит начать с шаблона MVVM. Много ресурсов в Интернете для этого, просто Google. – Xtr