如何将RelayCommand分配给Click或SelectedIndexChanges事件?

时间:2010-04-24 08:41:03

标签: silverlight windows-phone-7 command

我刚开始使用MVVM灯,但到目前为止它让我解决了一些问题。幸运的是,我正在努力解决Silverlight中相对的sime问题。

我们假设使用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#中的应用程序bat按钮,现在是xaml。

先谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

  

如何将此代码分配给SelectedIndexChanged事件

事件名称位于触发器的初始xaml行中。 EventName是触发某事发生的原因。您需要确保在具有SelectedIndexChanged事件的对象上具有此触发器。按钮没有该事件。

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

如果你打破了应用程序栏的mvvm,我不知道你为什么要创建一个触发器。您也可以通过直接访问所需的事件来直接路线。你可以做到,不要误会我的意思......只是这个代码更清洁:

ApplicationBarButton.Click += new RoutedEventHandler(OnApplicationBarButton_Click);