是否可以共享DataTrigger?

时间:2008-11-07 00:21:40

标签: .net wpf xaml datatrigger

我在我的XAML中定义了一个DataTrigger,我想在几个地方使用它。是否可以将其定义为资源然后共享它?

这是我的触发器:

<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中引用它?

2 个答案:

答案 0 :(得分:4)

作为对我自己的帖子的评论,我刚看到一个更好的方法来做到这一点 - 我应该使用内置的BooleanToVisibilityConverter,然后我就可以这样做:

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BoolToVis" />
</Window.Resources>

...然后

<TextBlock Visibility="{Binding HasNoCurrentTest, 
           Converter={StaticResource BoolToVis}}" />

这是一个更好的解决方案!

答案 1 :(得分:1)

如果样式位于带有键的Windows.Resources中,则每个元素都可以将它添加到自己的样式中。

<Window.Resources>
    <Style x:Key="YourStyleKey">
        <!-- Your Style -->
    </Style>
</Window.Resources>

<TextBox Text="SomeText" Style="{StaticResource YourStyleKey}"/>
<TextBox Text="SomeOtherText" Style="{StaticResource YourStyleKey}"/>