Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DataGridCell Validation.ErrorTemplate ignored

I'm trying to set the Validation.ErrorTemplate of the DataGridCells, here's the xaml code:

<Style x:Key="{x:Type DataGridCell}"  x:Uid="dataGridCellErrorTemplate" TargetType="{x:Type DataGridCell}">
    <Setter Property="Validation.ErrorTemplate">
        <Setter.Value>
            <ControlTemplate >
                <Border BorderBrush="Green" BorderThickness="2" ToolTip="Heidenei"></Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <!-- following line only for demonstration that the setter is working ... -->
    <Setter Property="Background" Value="Aquamarine"></Setter>              
</Style>

while the background of the datagridcells is successfully colored green (independant from any validation result) the used Validation.ErrorTemplate is still the default one, i.e. the red border.

I know there have been similar issues here in stackoverflow, e.g. Styling DataGridCell Error Template but they do not really solve my problem.

Any help is appreciated

Frank

like image 744
FrankE Avatar asked Mar 15 '12 14:03

FrankE


2 Answers

I believe that I'm experiencing the same issue.

When using a DataGridTemplateColumn the content is presented with a ContentPresenter. This content presenter uses the default error template.

I can't find a direct way to remove this template for an individual DataGridTemplateColumn but you can remove it for all content presenters in the DataGrid by adding a style to the DataGrid's resources.

<DataGrid.Resources>
    <Style TargetType="ContentPresenter">
        <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
    </Style>
</DataGrid.Resources>
like image 98
Terrence Avatar answered Oct 19 '22 08:10

Terrence


I had luck removing the irritating red border by using the following TextBlock style.

<Style TargetType="TextBlock">
    <Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</Style>
like image 1
Bartholinie Avatar answered Oct 19 '22 08:10

Bartholinie