当属性和数据值为true时,WPF触发

Kri*_*rip 6 c# wpf triggers datatrigger multidatatrigger

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

另一个注意事项:我需要能够在XAML背后的代码中执行此操作.

Sam*_*ack 12

MultiDataTrigger与DependencyProperties一样,也适用于普通属性.只需将绑定中的Path设置为依赖项属性的名称即可.

您需要注意设置该绑定的源,但是默认情况下,source是触发器附加到的元素的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>
Run Code Online (Sandbox Code Playgroud)