2

我尝试将 treeView 中的元素设置为 "IsEnabled" = false 但我希望用户可以选择该项目。这可能吗?

背景:用户可以取消删除项目(IsEnabled = false),但他也可以取消删除项目,但因此他必须选择项目但“IsEnabled”= false 它不起作用。

解决方法:将“已删除”项目的颜色设置为另一种颜色。问题:子项没有改变颜色,用户可以打开“已删除”的根节点

例子:

括号文件表

全部启用

现在我删除文档

括号(del)文档表

如果 (del)Document 的“IsEnabled”为 false,则用户无法选择该文档来取消删除它。通过 (del)Document 的颜色更改,工作表不会更改颜色。

我在我的项目中使用 MVVM 模式。

4

2 回答 2

0

鉴于您的一般问题,我认为最简单的解决方案是按照您所说的那样做,并为 TreeView 项目添加递归 ChangeColor() 。

此方法应遍历其子级并对其子级调用 ChangeColor()。

于 2014-03-03T13:29:17.840 回答
0

我尝试将 treeView 中的元素设置为 "IsEnabled" = false 但我希望用户可以选择该项目。这可能吗?

不,这是不可能的。从UIElement.IsEnabled 文档

未启用的元素不参与命中测试或焦点,因此不会成为输入事件的来源。

这意味着禁用的元素无法获得鼠标按下/单击事件,因此无法选择。

我认为您的解决方法是正确的。您可以在视图模型中表示“已删除”状态,并根据此状态更新元素的颜色。

于 2021-09-02T09:43:51.080 回答