我在WPF中比较新,我的XAML文件仍然比较复杂和混乱,因为有些代码经常重复。有一些简单的方法可以让代码看起来更好更短吗?例如,我有一个DataGrid,其中DataGridColumnTemplate始终相同,只有它的数据源和标题名称不同。
CoordinatorLayout
答案 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}}"
答案 1 :(得分:0)
定义样式是缩短代码和重复使用样式的常用方法
您可以点击以下链接了解WPF样式:
Using WPF styles
Styling and Templating
Walkthrough: Styling WPF Content