作者:糖糖糖开水 | 来源:互联网 | 2023-06-04 21:33
WPFTreeViewItem切换按钮可见性我遇到了一个问题,我希望有人可以帮我解决。我遇到过一个案例,我的节点包含一组可见性设置为false的子节点。我希望我可以禁用TreeVi
WPF TreeViewItem切换按钮可见性
我遇到了一个问题,我希望有人可以帮我解决。 我遇到过一个案例,我的节点包含一组可见性设置为false的子节点。 我希望我可以禁用TreeViewItem旁边的切换箭头,如果它的所有子项都是不可见的。 这可能吗? 这是一个例子:
我如何获得Cold Drinks TreeViewItem来隐藏切换箭头?
如果您看到TreeViewItem的deafult controlTemplate,您将看到Toggle按钮的可见性绑定到ItemsControl.HasItems。 触发器看起来像这样 –
False
因此,作为一种解决方法,您可以创建自己的自定义控件派生自TabItem并将您的HasItems绑定到您自己的CLR属性,该属性将循环遍历您的所有childItems(TreeViewItems)并且如果任何Item可见则返回True,否则返回False项目是隐藏/折叠状态。 这样,您的切换按钮将根据Trigger自动隐藏。
如果您想知道如何创建自定义控件并将其绑定到您的CLR属性,您可以参考这个 –
WPF TreeView数据绑定隐藏/显示展开/折叠图标
这与您一直在寻找的有些相同。 希望这可以帮助..
在内部(即用于键盘导航)和在其默认模板中, TreeViewItem依赖于其HasItems属性来知道它是否具有子级。 您可能需要将TreeViewItem的ItemsSource设置为列表并过滤掉折叠的项目。
上述就是C#学习教程:WPF TreeViewItem切换按钮可见性分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—编程笔记