Как применить один и тот же триггер данных к нескольким разным элементам? - PullRequest
0 голосов
/ 08 ноября 2011

Я должен применить один и тот же триггер данных к нескольким элементам.Триггер данных

<Style>
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=someButton, Path=IsChecked}" Value="False">
            <Setter Property="UIElement.Visibility" Value="Collapsed" />
        </DataTrigger>
    </Style.Triggers>
</Style>

Проблема в том, что мне нужно скопировать его для каждой метки, текстового поля, флажка, кнопки и т. Д., Которые я хочу свернуть / показать, и это одна кнопка и конецмакет довольно сложный, со многими кнопками, так что, есть ли лучший способ (что-то вроде класса и т. д.), панель док-станции, сетка, холст и т. д. Есть идеи?

Использование .NET 4.0, Visual Studio 2010 express.

1 Ответ

2 голосов
/ 08 ноября 2011

Я думаю, что первый вопрос, почему это DataTrigger во-первых. Используя BooleanToVisibilityConverter, вы можете привязать Visibility непосредственно к свойству IsChecked.

Кроме того, вы можете существенно очистить вещи, сделав IsChecked двустороннюю привязку к свойству в модели представления, например AreControlsVisible. Тогда все остальные элементы управления могут просто иметь Visibility="{Binding AreControlsVisible…

Другой вариант - сделать этот стиль ресурсом и применить его ко всем соответствующим элементам.

...