gpt4 book ai didi

wpf - DataGridCell.IsEditMode?

转载 作者:行者123 更新时间:2023-12-04 07:00:23 25 4
gpt4 key购买 nike

我如何知道 DataGridCell 当前是否处于编辑模式(不是 IsSelected),我的意思是,例如,单击 DataGridTextColumn 单元格它变成了 TextBox 而不是 TextBlock,这就是我所说的 IsEditMode。
我想为这种模式设置一个触发器 setter 。

编辑:
我试图为 DataGridCell.IsEditing 设置一个通用样式,但它似乎没有做任何事情。

这是我当前代码的片段:

<Style TargetType="{x:Type tk:DataGridCell}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{x:Null}"/>
</Trigger>
<Trigger Property="IsEditing" Value="True">
<Setter Property="BorderBrush" Value="#FF62B6CC"/>
<Setter Property="Background" Value="#FFF4F4F4"/>
</Trigger>
</Style.Triggers>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderThickness" Value="0.5"/>
<Setter Property="BorderBrush" Value="{x:Null}"/>
</Style>

谢谢。

最佳答案

如果你看看DataGridCell.cs文件,IsEditing 应该是确定单元格是否处于编辑模式的好方法。但是你不能从样式设置这个属性,因为在 DataGridCell 类中存在本地值分配(样式 setter 具有更高的优先级)。

所以,答案是:它应该从触发器工作,但不会从样式 setter 工作。

更新: Shimmy,它确实有效。窥探您的应用程序,确保 DataGridCell 使用您的隐式样式。在树中选择 DataGridCell,并检查其背景属性。每次进入编辑模式时,它都会更新。但是默认情况下您看不到它,因为 TextBox 不继承 Background 属性。但那是另一个故事了。我认为您可以调整 CellEditingTemplate 以使其正常工作。

关于wpf - DataGridCell.IsEditMode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1966125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com