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/
  • 相关阅读:
    FW : Unit of Measure related settings in SAP
    SAP PCA: 转移价格的确定
    SAP 关于贸易伙伴(Trading Partner)区分关联方/非关联方/子公司/第三方
    FSV tables in S/4 HANA OB58 , S_E38_98000088
    SAP Profit Center Table Data
    服务器搭建网站完整教程(宝塔面板+wordpress)
    运营
    undefined reference to `std::cout'等错误
    [c++][chromium]C++做与不做 C++ Dos and Don'ts
    [git]快速迁移git仓库
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3166601.html
Copyright © 2011-2022 走看看