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,并直接在数据模板中创建复选框。然而,这是迂回的,撤消了我做过的许多其他样式模板。是否有任何方法可以使模板列(如复选框(不显示其周围的红色错误验证边框?

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

DataGridCheckBoxColumn上的错误模板装饰器可以';不要被高估

一个可能的解决方案可能是这样设置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上。