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]
相关文章推荐
- WPF TreeView 后台C#选中指定的Item, 需要遍历
- WPF TreeView 后台C#选中指定的Item, 需要遍历
- WPF后台生成datatemplate(TreeViewItem例子)
- [转载][WPF]TreeViewItem实现整行选中
- WPF中确保显示TreeView选中的Item
- WPF中TreeView控件如何获取选中的TreeViewItem对象?
- C#遍历指定目录的递归-完美改进版+完整程序源码
- C# TreeView递归遍历方法
- WPF使用后台C#代码创建Grid
- C#遍历指定文件夹中的所有文件
- C# winform treeview node添加右键菜单并选中节点
- WPF 界面控件遍历和后台行为绑定写法
- C#遍历指定文件夹中的所有文件
- TreeView 循环遍历选中的value
- C#遍历指定路径下的文件夹
- c#遍历查找指定文件
- c# winform treeview的绑定和遍历
- C# winfrom遍历指定目录下的所有文件,并删除指定文件
- 二、给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。
- WPF中用后台C#代码为TabItem设置Background属性