<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,Checkbox样式。什么都没有从牢房中移除丑陋的红色框。
我偷了它,发现装饰品是自动制作的,未命名和模板化。它附在复选框上。
我唯一能解决的问题是更改为DataGridTemplateColumn并直接在数据模板中创建Checkbox。然而,这是环形交叉和撤消我已经完成的许多其他样式模板。是否有任何方法可以使模板列(如Checkbox)不显示其周围的红色错误验证边框?
这里的关键是我想要错误验证。我只是不想要它所做的装饰。
答案 0 :(得分:1)
一种可能的解决方案可能就是设置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
上。