递归处理

//这里是部分展开
        private void SetPositon(TreeViewItem treeNodeSelected, ItemCollection items)
        {
            if (treeNodeSelected != null)
            {
                View vSelected = treeNodeSelected.Tag as View;
                if (vSelected != null)
                {
                    foreach (TreeViewItem item in items)
                    {
                        if (item != null)
                        {
                            View vTmp = item.Tag as View;
                            if (vTmp != null)
                            {
                                if (vTmp.Value(0, "zj").ToString() == vSelected.Value(0, "zj").ToString())
                                {
                                    //选中匹配项
                                    item.IsSelected = true;
                                    ZLLX_SelectedItemChanged(ZLLX, null);//调用该方法,使检索发生
                                    //找到后,往回展开
                                    BackExpanded(item);
                                    break;
                                }
                                else
                                {
                                    if (item.Items.Count > 0)
                                    {
                                        SetPositon(treeNodeSelected, item.Items);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

        //往回展开
        private void BackExpanded(TreeViewItem item)
        {
            if (item.Parent.GetType() == typeof(TreeViewItem))//说明是根节点
            {
                (item.Parent as TreeViewItem).IsExpanded = true;
                BackExpanded(item.Parent as TreeViewItem);
            }
        }

        //双击资料记录,查看和下载资料
        private void ZLK_DoubleClick(object sender, DataGridRowClickedArgs e)
        {
            TreeViewItem treeNode = ZLLX.SelectedItem as TreeViewItem;
            if (treeNode != null)
            {
                XZ xz = treeNode.Header as XZ;
                if (xz != null)
                {
                    //图像
                    ImageSource imgSource = xz.ImageSource;
                    //资料信息
                    View vZLK = ZLK.DataSource as View;
                    if (vZLK != null)
                        if (vZLK.Rows.Count > 0)
                        {
                            Row row = ZLK.DataGrid.SelectedItem as Row;
                            if (row != null)
                            {
                                View vTmp = viewZL.CopyStructure();
                                vTmp.Rows.Add(row);
                                ZLCK card = new ZLCK(vTmp, imgSource);
                                card.Show();
                            }
                        }
                }
            }
        }

posted @   长白山  阅读(7362)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示