Можно ли поделиться DataTrigger? - PullRequest
2 голосов
/ 07 ноября 2008

В моем 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 ]

4 голосов
/ 07 ноября 2008

Как комментарий к моему собственному сообщению, я только что видел гораздо лучший способ сделать это в любом случае - я должен использовать встроенный BooleanToVisibilityConverter, тогда я могу просто сделать это:

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

тогда ...

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

что намного лучше!

1 голос
/ 07 ноября 2008

Если стиль находится в 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}"/>
...