2010-04-24 42 views
1

我剛剛開始使用MVVM light,但到目前爲止,它允許我解決一些問題。不幸的是,我在Silverlight中遇到了一些相對模糊的問題。如何將RelayCommand分配給Click或SelectedIndexChanges事件?

假設與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。

在此先感謝您的幫助。

回答

0

如何驗證碼分配給SelectedIndexChanged事件

事件名稱是在觸發的初始XAML線。 EventName是觸發事件發生的原因。您需要確保在具有SelectedIndexChanged事件的對象上具有此觸發器。按鈕沒有該事件。

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

如果你打破應用欄的mvvm,我不知道你爲什麼要創建一個觸發器。您最好直接訪問您想要的事件。你可以做到這一點,不要誤解我的意思......只是這段代碼更清潔:

ApplicationBarButton.Click += new RoutedEventHandler(OnApplicationBarButton_Click); 
+0

鑑於應用程序欄 - 問題是Click會引發一個事件。我不知道如何從視圖模型綁定一個方法,因爲視圖根本不「看」視圖模型層! 在XAML我可以通過綁定,但在C#中,我迷路了。 – Hikari 2010-04-24 17:33:02

+0

答案非常接近:) http://blog.galasoft.ch/archive/2010/04/09/using-commands-with-applicationbarmenuitem-and-applicationbarbutton-in-windows-phone-7.aspx – Hikari 2010-04-24 17:51:12