.net 是否可以共享数据触发器?
我在XAML中定义了一个DataTrigger,我想在几个地方使用它。是否可以将其定义为资源,然后共享 这是我的扳机:.net 是否可以共享数据触发器?,.net,wpf,xaml,datatrigger,.net,Wpf,Xaml,Datatrigger,我在XAML中定义了一个DataTrigger,我想在几个地方使用它。是否可以将其定义为资源,然后共享 这是我的扳机: <TextBlock.Style> <Style> <Style.Triggers> <DataTrigger Binding="{Binding HasCurrentTest}" Value="True"> <Setter Property="
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding HasCurrentTest}" Value="True">
<Setter Property="TextBlock.Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
虽然我可以在Window.Resources中定义它并给它一个键,但如何在XAML的其余部分中引用它?如果样式在Windows中。具有键的资源,每个元素都可以像这样将其添加到自己的样式中
<Window.Resources>
<Style x:Key="YourStyleKey">
<!-- Your Style -->
</Style>
</Window.Resources>
<TextBox Text="SomeText" Style="{StaticResource YourStyleKey}"/>
<TextBox Text="SomeOtherText" Style="{StaticResource YourStyleKey}"/>
作为对我自己帖子的评论,我刚刚看到了一种更好的方法——我应该使用内置的BooleanToVisibilityConverter,然后我可以这样做:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis" />
</Window.Resources>
然后
<TextBlock Visibility="{Binding HasNoCurrentTest,
Converter={StaticResource BoolToVis}}" />
这是一个更好的解决方案 我不认为这是一个更好的答案,因为样式应该留给真正的样式,而不是数据驱动的逻辑。如果您以后决定对整个应用程序进行样式化,您将在这里遇到问题;您必须提供合并样式和逻辑行为的样式的特殊情况。是的,我同意-这是我想要避免的-我想要共享DataTrigger,而不是样式本身。