如何在多个不同的项目上应用相同的数据触发器?

时间:2011-11-08 04:32:34

标签: c# .net wpf triggers wpf-controls

我必须在多个项目上应用相同的数据触发器。数据触发器是

<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 个答案:

答案 0 :(得分:2)

我认为第一个问题是为什么这首先是DataTrigger。使用BooleanToVisibilityConverter,您可以将Visibility直接绑定到IsChecked属性。

除此之外,您可以通过IsChecked对视图模型上的属性进行双向绑定来实现清理,例如AreControlsVisible。然后所有其他控件都可以只有Visibility="{Binding AreControlsVisible…

另一种选择是将该样式作为资源,并将其应用于所有适当的元素。