私はSilverLightとMvvm-Lightを初めて使用します。ビューモデルのSelectedPersonプロパティ(Personオブジェクト)を表示/編集するDataFormがビューにあります。
ユーザーが[保存]ボタンをクリックしたときにビューモデルでコマンドを実行したいのですが、ユーザーが[キャンセル]をクリックした場合にアクションを実行したくありません。
ViewModelに以下を追加しました。
public RelayCommand PersonEditEnded {get; set;}
...
public void Initialize()
{
PersonEditEnded = new RelayCommand(DoSomething);
...
}
public void DoSomething()
{
}
ビューに以下を追加しました。
<toolkit:DataForm x:Name="PersonForm" ... CurrentItem="{Binding SelectedPerson, Mode=TwoWay}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="EditEnded">
<gs:EventToCommand Command="{Binding PersonEditEnded, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:DataForm>
これは機能し、ユーザーが[送信]を押すとDoSomethingメソッドが呼び出されます。ただし、ユーザーが[キャンセル]を押すと、DoSomethingも呼び出されます。どのボタンが押されたかを知る方法や、キャンセルが押されたときに通話を抑制する方法はありますか?
あなたが提供できるどんな助けにも感謝します!