无法更改DataGrid单元格中的值

时间:2019-01-21 15:12:14

标签: wpf validation datagrid idataerrorinfo

我有一个DataGrid尝试使用IDataErrorInfo验证用户输入。 每当用户输入无效数据时,DataGrid的行都应标记为错误。我有一个问题,当我更正无效输入时,此更正被拒绝,并且旧的/无效的值保留在DataGridCell中。

这是我使用的样式:

Observable

                                                                                                 

这是我要显示的列/单元格:

<Style TargetType="{x:Type DataGridRow}">
<Setter Property="FontSize" Value="16"/>
<Setter Property="FontFamily" Value="ArialMT"/>
<Setter Property="Height" Value="24"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="ValidationErrorTemplate">
    <Setter.Value>
        <ControlTemplate>
            <Grid>
                <Ellipse Width="12" Height="12" Fill="Red" Stroke="Black" StrokeThickness="0.5"/>
                <TextBlock FontWeight="Bold" Padding="4,0,0,0" Margin="0" VerticalAlignment="Top" Foreground="White" Text="!" />
            </Grid>
        </ControlTemplate>
    </Setter.Value>
</Setter>
<Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="BorderBrush" Value="Red"/>
        <Setter Property="IsEnabled" Value="True" />
        <!--<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}"/>-->
        <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
        <!--<Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors).ErrorContent}"/>-->
    </Trigger>
    <Trigger Property="Validation.HasError" Value="false">
        <Setter Property="ToolTip" Value=""/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="BorderBrush" Value="Transparent"/>
    </Trigger>
</Style.Triggers>

那么,为什么我不再能够纠正错误的值?

0 个答案:

没有答案