wpf展开树节点_WPF中的AutoExpand树视图

WPF中的AutoExpand树视图

有没有一种方法可以从WPF中的树视图自动扩展所有节点? 我进行了搜索,甚至在treeview属性中都没有找到扩展功能。

谢谢

5个解决方案

68 votes

您可以设置ItemContainerStyle并使用IsExpanded属性。

如果需要通过代码执行此操作,则可以为树视图项目编写viewmodel,并将IsExpanded属性绑定到模型中的相应属性。 有关更多示例,请参见Josh Smith在CodeProject上的精彩文章:使用ViewModel模式简化WPF TreeView

Anvaka answered 2020-07-28T20:38:13Z

5 votes

这是我用的:

private void ExpandAllNodes(TreeViewItem rootItem)

{

foreach (object item in rootItem.Items)

{

TreeViewItem treeItem = (TreeViewItem)item;

if (treeItem != null)

{

ExpandAllNodes(treeItem);

treeItem.IsExpanded = true;

}

}

}

为了使其正常工作,必须在根节点的foreach循环中调用此方法:

// this loop expands all nodes

foreach (object item in myTreeView.Items)

{

TreeViewItem treeItem = (TreeViewItem)item;

if (treeItem != null)

{

ExpandAllNodes(treeItem);

treeItem.IsExpanded = true;

}

}

Carlo answered 2020-07-28T20:38:37Z

2 votes

卡洛的答案更好,因为它可以打开所有级别

这通过简单一些的代码示例对该示例进行了改进。

private void ExpandAllNodes(TreeViewItem treeItem)

{

treeItem.IsExpanded = true;

foreach (var childItem in treeItem.Items.OfType())

{

ExpandAllNodes(childItem);

}

}

使用此行代码调用它

TreeViewInstance.Items.OfType().ToList().ForEach(ExpandAllNodes);

jwize answered 2020-07-28T20:39:05Z

2 votes

如果您想手动展开,可以尝试

Xaml:

C#:

bool Expanded = false;

// The event subscription method (for a button click)

private void ButtonExpand__Click(object sender, RoutedEventArgs e)

{

Expanded = !Expanded;

Style Style = new Style

{

TargetType = typeof(TreeViewItem)

};

Style.Setters.Add(new Setter(TreeViewItem.IsExpandedProperty, Expanded));

TreePeople.ItemContainerStyle = Style;

}

Darío Andrés Muñoz Prudant answered 2020-07-28T20:39:34Z

0 votes

操纵树项完全展开的另一种编程方式(可能是通过c#代码)是在根节点上使用TreeViewItem.ExpandSubTree()命令。

private void ExpandFirstRootNode()

{

TreeViewControl.Items[0].ExpandSubtree();

}

gmmarcilli answered 2020-07-28T20:39:54Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值