您的位置:首页 > 编程语言 > C#

WPF TreeView 后台C#选中指定的Item, 需要遍历

2013-07-02 11:40 363 查看



[align=left] [/align][align=left] private TreeViewItem FindTreeViewItem(ItemsControl container, object item)[/align][align=left] {[/align][align=left] if (null == container || null == item)[/align][align=left] {[/align][align=left] return null;[/align][align=left] }[/align][align=left]
[/align][align=left] if (container.DataContext == item)[/align][align=left] {[/align][align=left] return container as TreeViewItem;[/align][align=left] }[/align][align=left]
[/align][align=left] int count = container.Items.Count;[/align][align=left] for (int i = 0; i < count; i++)[/align][align=left] {[/align][align=left] TreeViewItem subContainer = (TreeViewItem)container.ItemContainerGenerator.ContainerFromIndex(i);[/align][align=left]
[/align][align=left] if (null == subContainer)[/align][align=left] {[/align][align=left] continue;[/align][align=left] }[/align][align=left]
[/align][align=left] // Search the next level for the object.[/align][align=left] TreeViewItem resultContainer = FindTreeViewItem(subContainer, item);[/align][align=left] if (null != resultContainer)[/align][align=left] {[/align][align=left] return resultContainer;[/align][align=left] }[/align][align=left] }[/align][align=left]
[/align][align=left] return null;[/align][align=left] }[/align][align=left]
[/align][align=left]
[/align][align=left]
[/align][align=left]/////使用上述方法遍历 , 然后设置IsSelected属性[/align][align=left]
[/align][align=left] private static void SelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)[/align][align=left] {[/align][align=left] //[/align][align=left] SelectedProtocolControl spc = d as SelectedProtocolControl;[/align][align=left]
[/align][align=left] if (null != spc)[/align][align=left] {[/align][align=left] if (e.NewValue != spc.trvSelectedProtocol.SelectedItem)[/align][align=left] {[/align][align=left] //TreeViewItem tviNew = spc.trvSelectedProtocol.ItemContainerGenerator.ContainerFromItem(e.NewValue) as TreeViewItem;[/align][align=left] TreeViewItem tviNew = spc.FindTreeViewItem(spc.trvSelectedProtocol, e.NewValue);[/align][align=left] if (null != tviNew)[/align][align=left] {[/align][align=left] tviNew.IsSelected = true;[/align][align=left] }[/align][align=left] }[/align][align=left]
[/align][align=left] if (null != e.OldValue)[/align][align=left] {[/align][align=left] //TreeViewItem tviOld = spc.trvSelectedProtocol.ItemContainerGenerator.ContainerFromItem(e.OldValue) as TreeViewItem;[/align][align=left] TreeViewItem tviOld = spc.FindTreeViewItem(spc.trvSelectedProtocol, e.OldValue);[/align][align=left] if (null != tviOld)[/align][align=left] {[/align][align=left] tviOld.IsSelected = false;[/align][align=left] }[/align][align=left] }[/align][align=left] }[/align][align=left]
[/align][align=left] System.Diagnostics.Debug.WriteLine("SelectedItemChanged...");[/align][align=left] }[/align][align=left]
[/align][align=left]
[/align][align=left]
[/align][align=left]
[/align][align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: