如何避免在WPF中重复样式

时间:2016-10-19 08:02:25

标签: c# wpf xaml

我在WPF中比较新,我的XAML文件仍然比较复杂和混乱,因为有些代码经常重复。有一些简单的方法可以让代码看起来更好更短吗?例如,我有一个DataGrid,其中DataGridColumnTemplate始终相同,只有它的数据源和标题名称不同。

CoordinatorLayout

2 个答案:

答案 0 :(得分:0)

在您的确切情况下,当null值应禁用控件时,有一个粗鲁的黑客直接绑定IsEnabled并依赖TargetNullValue来替换null s

<CheckBox Grid.Column="0" Margin="4,0" 
          IsChecked="{Binding Flanges.IsSelected,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
          IsEnabled="{Binding Path=Flanges, TargetNullValue=false}"/>

然而,当属性不为null时,这会产生一些绑定错误

“BindingExpression生成的值对目标属性无效。目标元素是'CheckBox';目标属性是'IsEnabled'(类型'布尔')”

它有一个专门的值转换器来检查null并在绑定中使用它。它比编写DataTrigger短得多

IsEnabled="{Binding Path=Flanges, Converter={StaticResource IsNullConverter}}"

另见相关问题:Null To Boolean IValueConverter not working

答案 1 :(得分:0)

定义样式是缩短代码和重复使用样式的常用方法 您可以点击以下链接了解WPF样式:
Using WPF styles
Styling and Templating
Walkthrough: Styling WPF Content