c# - WPF 在属性和数据值为真时触发

标签 c# wpf triggers datatrigger multidatatrigger

我需要能够在属性和数据值为 true 时更改控件的 Style。例如,我的绑定(bind)数据有一个 IsDirty 属性。当 IsDirty 为 true 并且选择了控件时,我想更改控件的背景颜色。我找到了 MultiTriggerMultiDataTrigger 类...但在这种情况下,我需要以某种方式触发数据和属性。我该怎么做?

另一个注意事项:我需要能够在代码隐藏而不是 XAML 中执行此操作。

最佳答案

MultiDataTrigger 对 DependencyProperties 的作用与对普通属性的作用一样好。只需将绑定(bind)中的路径设置为依赖项属性的名称。

但是您需要小心设置该绑定(bind)的源,因为默认情况下源是触发器附加到的元素的 DataContext。如果触发器在可选对象的样式中使用,您可以使用 Binding 的 RelativeSource 属性:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
      <Condition Binding="{Binding Path=IsDirty}" Value="True" />
      <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="Cyan" />
  </MultiDataTrigger>

关于c# - WPF 在属性和数据值为真时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2921822/

相关文章:

c# - 使用 Mapper 与隐式运算符有什么优势吗?

c# - 如何对嵌套的 foreach 循环进行单元测试?

c# - 在 C# 中实现状态机的最佳方式(当性能很重要时)是什么?

html - 将简单的 HTML 转换为 RichTextBlock

c# - 如何设置默认路径,然后按 WPF 中的 ShowDialog 按钮?

javascript - 如何使用 Javascript 触发 Pusher 事件

sql - MSSQL 中的 INSERT 触发器 : destination table by Variable

c# - 扩展方法可以有泛型参数吗?

wpf - 如何在此示例代码中找到 Button 的 DataContext?

mysql - SQL #1064 - 您的 SQL 语法有错误; Joomla 组件安装中的 `` 附近