WPF TreeView 后台C#选中指定的Item, 需要遍历
2013-07-10 15:40
691 查看
private TreeViewItem FindTreeViewItem(ItemsControl container, object item)
{
if (null == container || null == item)
{
return null;
}
if (container.DataContext == item)
{
return container as TreeViewItem;
}
int count = container.Items.Count;
for (int i = 0; i < count; i++)
{
TreeViewItem subContainer = (TreeViewItem)container.ItemContainerGenerator.ContainerFromIndex(i);
if (null == subContainer)
{
continue;
}
// Search the next level for the object.
TreeViewItem resultContainer = FindTreeViewItem(subContainer, item);
if (null != resultContainer)
{
return resultContainer;
}
}
return null;
}
/////使用上述方法遍历 , 然后设置IsSelected属性
private static void SelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//
SelectedProtocolControl spc = d as SelectedProtocolControl;
if (null != spc)
{
if (e.NewValue != spc.trvSelectedProtocol.SelectedItem)
{
//TreeViewItem tviNew = spc.trvSelectedProtocol.ItemContainerGenerator.ContainerFromItem(e.NewValue) as TreeViewItem;
TreeViewItem tviNew = spc.FindTreeViewItem(spc.trvSelectedProtocol, e.NewValue);
if (null != tviNew)
{
tviNew.IsSelected = true;
}
}
if (null != e.OldValue)
{
//TreeViewItem tviOld = spc.trvSelectedProtocol.ItemContainerGenerator.ContainerFromItem(e.OldValue) as TreeViewItem;
TreeViewItem tviOld = spc.FindTreeViewItem(spc.trvSelectedProtocol, e.OldValue);
if (null != tviOld)
{
tviOld.IsSelected = false;
}
}
}
System.Diagnostics.Debug.WriteLine("SelectedItemChanged...");
}
相关文章推荐
- WPF TreeView 后台C#选中指定的Item, 需要遍历
- WPF TreeView 后台C#选中指定的Item, 需要遍历
- [转载][WPF]TreeViewItem实现整行选中
- WPF后台生成datatemplate(TreeViewItem例子)
- WPF中确保显示TreeView选中的Item
- WPF中TreeView控件如何获取选中的TreeViewItem对象?
- C#遍历指定目录的代码
- C#中遍历TreeView的两个常用方法
- C#treeView控件单击事件选中节点的问题
- 改变TreeView的ItemTemplate模板,选中子项的时候选中子项所在的TreeViewItem
- C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
- treeview(winform)里如何用命令指定选中某一个节点,并引发afterselect事件?
- 可双向并指定开始结点的treeview节点遍历查找方法类
- WPF 后台C#设置控件背景图片
- c#访问xml文件中遍历指定节点名的要素
- .NET里面的下拉列表居然不能对value值遍历——取指定item的value值
- C#winfrom 中 TreeView 控件中带checkbox,怎么实现在父节点上打勾,选中全部子节点?
- WPF使用后台C#代码创建Grid
- C# WinForm设置TreeView选中节点
- WPF 界面控件遍历和后台行为绑定写法