DataGridCheckBoxColumn上的错误模板装配器无法被覆盖

时间:2016-08-16 22:11:56

标签: c# .net wpf xaml

<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)不显示其周围的红色错误验证边框?

这里的关键是我想要错误验证。我只是不想要它所做的装饰。

1 个答案:

答案 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上。