具有自定义 DependencyProperty 的 MultiDataTrigger
MultiDataTrigger with Custom DependencyProperty
我有一个MultiDataTrigger
。我可以像这样
绑定到控件 和 视图模型 属性 的 DependencyProperty
(DP)
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding PerformTextSearchesInCommentary}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="LightGray"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
太棒了。但是现在,我想使用我自己的自定义 DP "HasTextMatch",它是在静态 class 中定义的。我可以使用像
这样的标准触发器来做到这一点
<Style.Triggers>
<Trigger Property="Helpers:DataGridTextSearch.HasTextMatch" Value="True">
<Setter Property="Background" Value="LightGray"/>
</Trigger>
</Style.Triggers>
但我现在想包括另一个 属性。我试过了
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!--<Condition Property="Helpers:DataGridTextSearch.HasTextMatch" Value="True"/>--> This obviously won't work.
<Condition Binding="{Binding Helpers:DataGridTextSearch.HasTextMatch, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding PerformTextSearchesInCommentary}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="LightGray"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
但这不起作用。我已经搜索过但似乎无法找到如何执行此操作。我怎样才能绑定到我的自定义 DP?
感谢您的宝贵时间。
DataGridTextSearch.HasTextMatch
属性 是附加的属性。请使用以下 Condition
:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=(Helpers:DataGridTextSearch.HasTextMatch), RelativeSource={RelativeSource Self}}>
...
有关 属性 路径(包括附加属性)的其他信息可在此处找到:PropertyPath XAML Syntax, MSDN。
我有一个MultiDataTrigger
。我可以像这样
DependencyProperty
(DP)
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding PerformTextSearchesInCommentary}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="LightGray"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
太棒了。但是现在,我想使用我自己的自定义 DP "HasTextMatch",它是在静态 class 中定义的。我可以使用像
这样的标准触发器来做到这一点<Style.Triggers>
<Trigger Property="Helpers:DataGridTextSearch.HasTextMatch" Value="True">
<Setter Property="Background" Value="LightGray"/>
</Trigger>
</Style.Triggers>
但我现在想包括另一个 属性。我试过了
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!--<Condition Property="Helpers:DataGridTextSearch.HasTextMatch" Value="True"/>--> This obviously won't work.
<Condition Binding="{Binding Helpers:DataGridTextSearch.HasTextMatch, RelativeSource={RelativeSource Self}}" Value="True"/>
<Condition Binding="{Binding PerformTextSearchesInCommentary}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="LightGray"/>
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
但这不起作用。我已经搜索过但似乎无法找到如何执行此操作。我怎样才能绑定到我的自定义 DP?
感谢您的宝贵时间。
DataGridTextSearch.HasTextMatch
属性 是附加的属性。请使用以下 Condition
:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=(Helpers:DataGridTextSearch.HasTextMatch), RelativeSource={RelativeSource Self}}>
...
有关 属性 路径(包括附加属性)的其他信息可在此处找到:PropertyPath XAML Syntax, MSDN。