wpf - 在 XAML : Stop an Event from Taking Place

标签 wpf xaml mvvm

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

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

最佳答案

  • 您可以使用CanExecuteRaiseCanExecuteChanged方法
    您的DelegateCommand在您的 View 模型中检查值
    并在需要时有效地禁用 DelegateCommand。
  • 您还可以在 View 后面的代码中处理事件。您的
    View 模型已经是 View 的数据上下文,所以访问它
    为此目的从后面的代码很好,因此您可以
    检查 View 模型中的 bool 属性并取消事件
    如所须。
  • 关于wpf - 在 XAML : Stop an Event from Taking Place,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35900578/

    相关文章:

    带有自定义控件的WPF选项卡顺序?

    wpf - WPF 中的鼠标额外按钮

    c# - WinUI 3 xaml ABI.Microsoft.UI 与 Microsoft.UI

    c# - 在带有 MVVM 的 DataTemplate 中使用窗口资源

    c# - 将模板内容转换为颜色叠加

    c# - WPF 数据网格 : How To Keep Selected Rows Highlighted?

    c# - 我应该以哪种方式定义资源字典以保持我的代码干净?

    c# - 如何从 C# 代码获取屏幕大小到 XAML?

    每个实体的 Android MVVM ViewModel 和存储库?

    c# - ASP.NET MVC 4 - 一个 View 中的多个模型