我必须在多个项目上应用相同的数据触发器。数据触发器是
<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。
答案 0 :(得分:2)
我认为第一个问题是为什么这首先是DataTrigger
。使用BooleanToVisibilityConverter
,您可以将Visibility
直接绑定到IsChecked
属性。
除此之外,您可以通过IsChecked
对视图模型上的属性进行双向绑定来实现清理,例如AreControlsVisible
。然后所有其他控件都可以只有Visibility="{Binding AreControlsVisible…
另一种选择是将该样式作为资源,并将其应用于所有适当的元素。