1

MVVM - パターンでコマンドを使用しようとしましたが、コマンドを特別なイベント (MouseUp や MouseEnter など) に「バインド」する方法がわかりません。これを行う方法?

4

4 に答える 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 に答える