Как назначить RelayCommand для событий Click или SelectedIndexChanges? - PullRequest
1 голос
/ 24 апреля 2010

Я только начинаю с MVVM light, но пока он позволил мне решить некоторые из моих проблем. К сожалению, я борюсь с относительно незначительными проблемами в Silverlight.

Давайте предположим следующую кнопку с EventToCommand:

<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseEnter">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding UpdateAccountsCommand, Mode=OneWay}" CommandParameter="{Binding SelectedIndex, ElementName=lstLedgers}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

Как назначить этот код событию SelectedIndexChanged?

Дальнейшая проблема - как назначить команду в коде C #? Проблема заключается в следующем: я разрабатываю приложение для Windows Phone 7. Панель приложения должна быть инициирована в C # (насколько я знаю, на данном этапе нет кода xaml для панели приложения). В результате я понятия не имею, как привязать команду к кнопке приложения в c #, теперь xaml.

Заранее спасибо за вашу помощь.

1 Ответ

0 голосов
/ 24 апреля 2010

Как назначить этот код событию SelectedIndexChanged

Имя события находится в начальной строке xaml триггера. EventName - это то, что заставляет что-то происходить. Вам нужно убедиться, что у вас есть этот триггер для объекта с событием SelectedIndexChanged. У кнопки нет этого события.

...
<i:EventTrigger EventName="SelectedIndexChanged"> 
...

Если вы ломаете mvvm для панели приложения, я не знаю, почему вы хотите создать триггер. Вы могли бы также пойти прямым путем, получая доступ к событиям, которые вы хотите напрямую. Вы можете сделать это, не поймите меня неправильно ... просто этот код намного чище:

ApplicationBarButton.Click += new RoutedEventHandler(OnApplicationBarButton_Click);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...