MVVM - パターンでコマンドを使用しようとしましたが、コマンドを特別なイベント (MouseUp や MouseEnter など) に「バインド」する方法がわかりません。これを行う方法?
質問する
928 次
4 に答える
3
まず、 でICommnad
プロパティを定義する必要がありますViewModel
。
public ICommand MouseUpCommand
{
get
{
if (this.mouseUpCommand == null)
{
this.mouseUpCommand = new RelayCommand(this.OnMouseUp);
}
return this.mouseUpCommand;
}
}
private void OnMouseUp()
{
// Handle MouseUp event.
}
ICommand
多くの実装
を見つけることができます。それらの中の一つ:
public class RelayCommand : ICommand
{
public RelayCommand(Action<object> execute)
{
this._execute = execute;
...
}
...
public void Execute(object parameter)
{
_execute(parameter);
}
}
次に、あなたを呼び出すイベントトリガーを追加しますCommand
:
<i:EventTrigger EventName="MouseUp">
<i:InvokeCommandAction Command="{Binding MouseUpCommand}"/>
</i:EventTrigger>
于 2013-10-30T12:10:03.913 に答える
0
ViewModel のコマンドへの WPF Binding UI events を見てください。
このためには、 NugetSystem.Windows.Interactivity.dll
から入手できるものが必要です
于 2013-10-30T12:12:56.390 に答える