Просмотр события модели привязки к нажатию кнопки - PullRequest
2 голосов
/ 15 января 2012

У моей Viewmodel есть событие

public class TestViewModel 
{
    public event RoutedEventHandler Run;
}

Я хочу вызвать это событие, когда пользователь нажал на кнопку в представлении

Как связать это с кнопкой в ​​представлении?

Ответы [ 2 ]

6 голосов
/ 15 января 2012

Маршрутные события предназначены для элементов управления, а не для просмотра моделей, если у вас есть что-то, что должно быть выполнено после нажатия кнопки, команда была бы более подходящей, на мой взгляд, она может легкобыть привязанным к Button.Command.

1 голос
/ 15 января 2012

Я думаю, вы должны использовать DelegateCommand для такого поведения.

В вашей модели представления:

private DelegateCommand _runCommand;
public DelegateCommand RunCommand
{
    get
    {
        if (_runCommand == null)
            _runCommand = new DelegateCommand(Run, CanRun);

        return _runCommand;
    }
}

void Run()
{
    ... 
}

bool CanSaveAction()
{
    return true;
}

На вашей странице:

<Button Command="{Binding RunCommand}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...