событие нажатия кнопки wpf - PullRequest
2 голосов
/ 20 января 2011

В этом вопросе Я спрашивал о динамическом добавлении TabItems к TabControl ItemsSource от ObservableCollection<Village> .. У меня вопрос: если добавить кнопку к любому TabItem, у этой кнопки будет DataContext ее контейнера TabItem, как я могу реализовать событие Click для этой кнопки?

1 Ответ

7 голосов
/ 20 января 2011

Если вы добавили кнопку в шаблон данных, то с помощью метода Button_Click вы можете легко получить текст данных 'Village'.

    void Button_Click(object sender, RoutedEventArgs e)
    {
        Village clickedVillage = ((Button)sender).DataContext as Village;
        //Do whatever you want to do with the Village
    }

Но, опять же, вышеприведенное решение - не лучший способ решить эту проблему. Шаблон MVVM будет ожидать ICommand в вашей Деревне (или его контейнерном классе), и вы свяжете эту команду со свойством Button.Command, чтобы никакого кода не было вообще. Или, другими словами, ваш XAML станет чище, а ViewModel станет более автономным в отношении свойств и действий.

...