zoukankan      html  css  js  c++  java
  • WPF TreeView 后台C#选中指定的Item, 需要遍历

      
            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...");
            }





    https://muzizongheng.blog.csdn.net/
  • 相关阅读:
    django.db.utils.OperationalError: (1050, "Table '表名' already exists)解决方法
    MySQL创建数据库与创建用户以及授权
    ubantu安装mysql
    sed命令详解
    docker-compose教程(安装,使用, 快速入门)
    Hive bucket表
    hive分区(partition)简介
    HIve实战分析Hadoop的日志
    hive 元数据解析
    hive学习笔记之-数据类型
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3166601.html
Copyright © 2011-2022 走看看