【发布时间】:2012-10-27 11:46:35
【问题描述】:
我是 SilverLight 和 Mvvm-Light 的新手。我的视图上有一个 DataForm,它显示/编辑我的视图模型的 SelectedPerson 属性(一个 Person 对象)。
我想在用户单击“保存”按钮时在我的视图模型上执行命令,但不想在用户单击“取消”时执行操作。
我在 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 方法。但是,当用户按下 Cancel 时,也会调用 DoSomething。有没有办法知道按下了哪个按钮或在按下取消时抑制呼叫?
感谢您提供的任何帮助!
【问题讨论】: