1

我有一个 WPF 数据网格,它在 XAML 中定义为这个

      AutoGenerateColumns="True"
      AutoGeneratingColumn="dgData_AutoGeneratingColumn"
      CheckBox.Checked="dgData_Checked"
      CheckBox.Unchecked="dgData_UnChecked"
      FrozenColumnCount="2"
      VirtualizingStackPanel.IsVirtualizing="False"

在运行时,我有一个绑定到数据网格的数据表(带有“IsDirty”列和大约 10 个布尔列)。IsDirty 列用于脏标记,这里是它的 DataTemplate

<DataTemplate x:Key="dtIsDirty">
    <Grid>
        <Image Margin="2"
            Source="{DynamicResource imgDirtyRow}"
            Visibility="{Binding Path=Item.IsDirty,
                                 Mode=OneWay,
                                 TargetNullValue=Collapsed,
                                 Converter={StaticResource cnvBooleanToVisibilityConverter},
                                 RelativeSource={RelativeSource FindAncestor,
                                                                AncestorType={x:Type DataGridRow}}}"
            />
    </Grid>
</DataTemplate>

一切正常:如果我选中/取消选中一个复选框,则会显示该行的脏标记。

但是当我在更改该行中的复选框之前输入一行时,该标志不会直接显示,而是当我离开该行时。

在 DataTemplate 中将绑定的 UpdateSourceTrigger 设置为 PropertyChange 无济于事,将列的绑定的 UpdateSourceTrigger 设置为 PropertyChange 也无济于事。

任何线索我能做什么?

问候

4

0 回答 0