Команда WPF с обработчиком событий Click - PullRequest
8 голосов
/ 07 июня 2010

Когда я использую Command в элементе управления Button, обработчик событий, который соединяется с событием Click, никогда не будет вызываться,

Как я могу использовать Command и обрабатывать Clickобработчик событий?

Ответы [ 3 ]

18 голосов
/ 08 июня 2010

Вы можете присоединить ICommand к другому свойству и выполнить его из обработчика Click.

<Button x:Name="MyButton" Tag="{x:Static ApplicationCommands.Stop}" Click="MyButton_Click" />

и в обработчике:

private void MyButton_Click(object sender, RoutedEventArgs e)
{
    var button = sender as Button;
    if (button != null)
    {
        var command = button.Tag as ICommand;
        if (command != null)
            command.Execute(button.CommandParameter);
    }
}

Вам также необходимо выполнить некоторыедополнительная работа, если вы хотите сохранить поведение отключения команд.

0 голосов
/ 08 июня 2010

Вам необходимо поведение EventToCommand в MVVMLight

0 голосов
/ 08 июня 2010

Команда - это недельное событие. Хорошая мысль о командах заключается в том, что вам не нужно использовать события. На самом деле вам вообще не нужно использовать код позади и события, если вы используете шаблон Viewmodel. См. Команды реле: http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...