誰でもEventToCommand
クラスの実際の構文を教えてください。私が信じているのは、EventToCommand
クラスがSilverlight/WPFおよびWP7で動作するということです。したがって、ダウンする方が良い選択だと思います。
私が信じていることから、クリックイベントを追加してViewModel
に強制することができますが、これを行う最適な方法を見つけるのに問題があります。
Blendなしで追加できることは知っていますが、スニペットはありますか?
または、VS 2010経由で追加する簡単な方法はありますか?任意のヘルプまたはこれについての良いチュートリアルを知っている人は素晴らしいでしょう。
.NetFramework4
を使用するとします:
最初にnamespace
を追加します:
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;Assembly=GalaSoft.MvvmLight.Platform"
Loadedイベントの構文。
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<cmd:EventToCommand Command="{Binding Mode=OneWay, Path=LoadedCommand}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
プロジェクトを更新しましたが、コマンドが次の場所に移動したようです。
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;Assembly=GalaSoft.MvvmLight.Platform"
0)WPFとMVVMがわからない場合は、WPFとMVVMパターンに関するJosh Smithの記事を読んでください https://msdn.Microsoft.com/en-us/magazine/dd419663.aspx
1)プロジェクトで(NuGetを介して)MvvmLightLibsパッケージを追加します
2)System.Windows.Interactivityへの参照を追加します
3)[表示] XAMLに以下を追加します。
a)
xmlns:i="clr-namespace:System.Windows.Interactivity;Assembly=System.Windows.Interactivity"
xmlns:command="http://www.galasoft.ch/mvvmlight"
b)
<i:Interaction.Triggers>
<i:EventTrigger EventName="Closing">
<command:EventToCommand Command="{Binding OnClosingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Window>
4)ViewModelで必要なプロパティを追加します
public ICommand OnClosingCommand
{
get
{
return new RelayCommand(() => SomeMethod());
}
}
追伸ビューでDataContext(XAML)を指定する必要があります
<Window.DataContext>
<vm:MainWindowViewModel/>
</Window.DataContext>
仕事です。私自身は学んだばかりです。