Как привязать команду элемента в пользовательском контроле к команде viewmodel? - PullRequest
0 голосов
/ 01 февраля 2012

У меня есть UserControl. В моем UserControl у меня есть кнопка, которую я хочу привязать ее команду к моей команде ViewModel. Могу ли я сделать это?

Ответы [ 3 ]

1 голос
/ 01 февраля 2012

Да, вы можете добавить перенаправленное событие в свой пользовательский элемент управления, которое вызывается при нажатии кнопки.

Затем вы можете использовать различные методы для вызова глагола модели представления при возникновении события пользовательского элемента управления.

например. Вы можете использовать присоединенное свойство , или я бы рекомендовал использовать инфраструктуру MVVM, такую ​​как Caliburn.Micro , которая имеет Действия , что делает ее еще более простой.

0 голосов
/ 01 февраля 2012

Я не совсем уверен, что вы имеете в виду, но я делаю снимок.

В вашем коде определите RoutedCommand :

public partial class MyUserControl : UserControl
{
    public static RoutedCommand Click =
        new RoutedCommand("Click", typeof(UserControl));
}

Тогда этоxaml, установите привязку команды:

<UserControl.CommandBindings>
    <CommandBinding 
        Command="{x:Static MyNameSpace:MyUserControl.Click}"
        CanExecute="ClickCanExecute"
        Executed="ClickExecuted"/>
</UserControl.CommandBindings>

Затем добавьте обработчики в коде:

private void ClickCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = true;
}

private void ClickExecuted(object sender, ExecutedRoutedEventArgs e)
{
    // TODO execution logic goes here
}

Был ли я закрыт?:)

0 голосов
/ 01 февраля 2012

Я нашел это ... Я могу определить тип DependensyProperty RelayCommand в моем usercontrol и привязать свой DependensyProperty к моей команде ViewModel

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