gpt4 book ai didi

wpf - 如何从代码中选择 TreeView 项目

转载 作者:行者123 更新时间:2023-12-03 09:53:20 25 4
gpt4 key购买 nike

我有一个三层 TreeView 。如何从代码中选择第三级的任何项目?我尝试了许多博客和 stackoverflow 中提到的方法,但它似乎仅适用于第一级(对于第一级以下的项目,dbObject 为空)。

这是我用来选择 TreeViewItem 的代码。我错过了什么吗?

public static void SetSelectedItem(this TreeView control, object item)
{
try
{
var dObject = control.ItemContainerGenerator.ContainerFromItem(item);

//uncomment the following line if UI updates are unnecessary
((TreeViewItem)dObject).IsSelected = true;

MethodInfo selectMethod = typeof(TreeViewItem).GetMethod("Select",
BindingFlags.NonPublic | BindingFlags.Instance);

selectMethod.Invoke(dObject, new object[] { true });
}
catch { }
}

最佳答案

另一种选择是使用绑定(bind)。如果您有一个正在使用绑定(bind)的对象来获取每个 TreeViewItem 的文本(例如),您可以创建一个也绑定(bind) IsSelected 的样式。属性(property):

<TreeView>
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<Setter Property="IsSelected"
Value="{Binding Path=IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.Resources>
</TreeView>

这假设绑定(bind)对象具有 IsSelected bool 类型的属性.然后您可以选择 TreeViewItem通过设置 IsSelectedtrue为其对应的对象。
IsExpanded 可以使用相同的方法。属性来控制何时 TreeViewItem展开或折叠。

关于wpf - 如何从代码中选择 TreeView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/940243/

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