好的,从我以前的帖子中得到提示,简而言之,我如何让触发器在附加属性上触发?
经过更多的尝试(和很多错误),我想我知道问题出在哪里,但不知道如何解决它。当使用拖放到数据网格上时,负责更改 DataGridCell 背景的触发器仅在第一次放置或加载到未使用的单元格时触发。除了从单元格中删除数据(在这种情况下,单元格将返回到行的颜色)之外,对单元格的任何进一步使用都会将其背景返回为其具有的第一个单元格特定颜色,并且触发器不再触发。
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Blue" />
<Style.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource watchNameConverter}" ConverterParameter="1">
<Binding RelativeSource="{RelativeSource Self}" Path="Text"></Binding>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type DataGridCell}, AncestorLevel=1}" Path="." />
<Binding RelativeSource="{RelativeSource Self}" Path="."></Binding>
</MultiBinding>
</DataTrigger.Binding>
<Setter Property="Background" Value="Purple"/>
<Setter Property="local:Scheduler.IsDirty" Value="True" />
</DataTrigger>
<Trigger Property="local:Scheduler.IsDirty" Value="true">
<Setter Property="Background">
<Setter.Value>
<MultiBinding Converter="{StaticResource colorTextConverter}" >
<MultiBinding.Bindings>
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type DataGridCell}, AncestorLevel=1}" Path="." />
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>