DataGridCheckBoxColumn上的错误模板装饰器可以';不要被高估
本文关键字:高估 错误 DataGridCheckBoxColumn | 更新日期: 2023-09-27 18:02:44
<DataGridCheckBoxColumn Binding="{Binding Value, ValidatesOnDataErrors=True}"
Validation.ErrorTemplate="{x:Null}"/>
我正试图把红盒子从牢房里拿出来。这里的errortemplate=null不会改变任何内容。
<Style TargetType="{x:Type DataGridCheckBoxColumn}" >
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</Style>
这也无济于事。我尝试过DataGridCell、DataGridRow、ContentTemplate、复选框样式。没有什么能把这个难看的红色盒子从牢房里移走。
我窥探了一下,发现一个装饰器是自动制作的,没有名字,而且是模板化的。它附在复选框上。
我绕过它的唯一方法是更改为DataGridTemplateColumn,并直接在数据模板中创建复选框。然而,这是迂回的,撤消了我做过的许多其他样式模板。是否有任何方法可以使模板列(如复选框(不显示其周围的红色错误验证边框?
这里的关键是我想要错误验证。我只是不想要它做的装饰品。
一个可能的解决方案可能是这样设置ElementStyle
的样式。
<DataGrid ItemsSource="{Binding Datas}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Invalid, ValidatesOnDataErrors=True}" Header="Invalid" >
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"></Setter>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
注意:
要摆脱左侧的红色感叹标记,请执行以下操作:
RowValidationErrorTemplate="{x:Null}"
在您的DataGrid
上。