禁用时清空单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁用时清空单元格相关的知识,希望对你有一定的参考价值。

我有一个datagrid,它使用DataGridCell类型的样式来禁用某些单元格,具体取决于来自同一行的另一个单元格的值。

下面是Style的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属性,我需要在禁用它之前清空单元格,以便不在DB中保留垃圾值。

作为C#的新手,如果可能的话,我更愿意将XAML用于此目的。

如何实现这种行为?

答案

作为C#的新手,如果可能的话,我更愿意将XAML用于此目的。

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

你应该做的是在Segment属性设置为1时立即清除数据对象中的值,并且应该以编程方式执行此操作,无论是在Segment和其他属性本身定义的类中,还是从设置的类中Segment财产。

您既不能也不应该使用DataTrigger清除基础数据对象的任何值。

另一答案

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

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

以上是关于禁用时清空单元格的主要内容,如果未能解决你的问题,请参考以下文章

当我滚动浏览我的表格视图时,活动的表格视图单元格不断被禁用

如何禁用 UITableViewCell 突出显示?

如何在 c# 中禁用可点击的 datagridview 中的空单元格

ios:在点击collectionview单元格或tableview单元格时禁用第二个触摸事件

当其他单元格值更改时禁用 JTable 单元格可编辑

进入视图时如何禁用 TableView 单元格图像下载