在XAML中:停止发生事件

时间:2016-03-09 19:13:07

标签: wpf xaml mvvm

我有一个类似于下面的代码和一个boolean属性,在viewmodel中,我想用它来控制Loaded事件。例如,如果property为false,则不要触发此事件。如果在xaml中有一个IsEnabled属性,那么很容易将boolean属性绑定到。在事件的情况下,如何完成这项任务?

<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
    <cmd:EventToCommand Command="{Binding Mode=OneWay, Path=LoadedCommand}"
                        PassEventArgsToCommand="True" />
</i:EventTrigger>

1 个答案:

答案 0 :(得分:3)

  1. 您可以使用CanExecuteRaiseCanExecuteChanged方法 您的视图模型中的DelegateCommand检查值 并在需要时有效地禁用DelegateCommand。
  2. 您还可以在视图后面的代码中处理事件。您的 视图模型已经是视图的数据上下文,因此访问它 从代码背后为此目的很好,因此你可以 检查视图模型中的boolean属性并取消该事件 根据需要。