禁用时清空单元格

Empty the cell when it is disabled

我有一个数据网格,它使用 DataGridCell 类型的样式来根据来自同一行的另一个单元格的值来禁用某些单元格。

下面是 XAML 样式

    <Style x:Key="testCellStyle" TargetType="{x:Type DataGridCell}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Segment}" Value="0">
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Segment}" Value="1">
                <Setter Property="IsEnabled" Value="True"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

这部分工作正常。

现在,由于列绑定到相应更新数据库的 VM 属性,我需要在禁用单元格之前清空单元格,以免在数据库中保留垃圾值。

我是 C# 的新手,如果可能的话,我更愿意使用 XAML。

如何实现这种行为?

我的技巧:将Foreground设置为Transparent,这意味着该值仍然存在但不可见。

<DataTrigger Binding="{Binding Segment}" Value="0">
    <Setter Property="IsEnabled" Value="False"/>
    <Setter Property="Foreground" Value="Transparent"/>
</DataTrigger>

Being new to C#, I'd prefer to use XAML for this purpose if possible.

XAML 是一种 标记 语言。它不能用于清除源对象中的任何值。

您应该做的是在 Segment 属性 设置为 1 后立即清除数据对象中的值,您应该以编程方式执行此操作,可以在 class 其中 Segment 和其他属性是自己定义的,或者来自设置 Segment 属性.

的 class

您不能也不应该使用 DataTrigger.

清除基础数据对象的任何值