Tag: treeview

WPF – 绑定树视图不更新根项

我正在使用WPF TreeView控件,我已将其绑定到基于ObservableCollections的简单树结构。 这是XAML: 而树的结构: public class Node : IEnumerable { private string text; private ObservableCollection children; public string Text { get { return text; } } public ObservableCollection Children { get { return children; } } public Node(string text, params string[] items){ this.text = text; children = new ObservableCollection(); foreach (string item in items) children.Add(new […]

如何序列化控件

我们有一个包含数据库作为xml文件的应用程序。 它有客户端服务器架构。 所以这里服务器将使用数据集从xml文件中读取数据并将其存储在xml模式中。 然后,服务器将序列化数据并将其传递给UI(客户端)。使用左侧的Treeview,右上角的listview和右下角的propertygrid显示UI数据。 Ui中的数据分类为类和对象。 所以现在我们的数据库中有一个xml文件machinesclass.xml和machineobjects.xml。 machinesclass.xml包含各种类,如电子类,计算机类,农业工具类等,machineobjects.xml包含电视,奔腾4计算机,Tractror等。所以现在在UI中,如果我从树视图中选择电子节点,它将列出电视,广播,电话等通过使用Listview将它包含在右上方的对象中,如果我选择对象“TV”,则在右下角的propertygrid中显示与TV相关的属性。 所以现在我们有一个任务,如果有人想要从xml文件(.xml),从父机器类例和机器对象.xml中取回UI中的选定对象 例如,如果有人从UI列表视图中选择电视并希望以.xml文件(tv.xml)的forms进行备份,那么在某些时候他可以导入数据,我们可以在这里实现什么逻辑? 我可以序列化listview和propertygrid,还是有任何选项可以做到这一点? 这是我在UI中用于复制粘贴操作的一些代码

想要使用c#在winforms的treenode中加粗一个单词的大胆字符

我有“搜索TextBox”在树视图中搜索,我给出的结果非常好。 但我希望得到这些部分得到Bold我输入我的winform的“搜索TextBox”。 例如:我输入Ram然后它给* Ram * esh。

如何在WPF中通过HitTesting使用坐标/点获取TreeViewItem?

我试图在鼠标下获取TreeViewItem ,但无法找到方法。 目前我正在使用这个: Layer GetItemAtLocation ( Point point ) { HitTestResult result = VisualTreeHelper.HitTest ( this, point ); FrameworkElement element = result.VisualHit as FrameworkElement; if ( element != null ) return element.DataContext as Layer; return null; } 此方法很有用,但不会在鼠标下提供TreeViewItem 。 关于如何做到这一点的任何想法?

在WPF中更改BitMapImage的尺寸,以及可以在元素中放置哪种对象?

我正在尝试使用TreeView元素创建一个资源管理器应用程序,并为树的每个级别提供不同的图标,并按照以下文章进行操作: http : //www.codeproject.com/Articles/21248/A-Simple-WPF-资源管理器树 这一切都很好,除了我想要有不同大小的图标。 我的XAML for Image元素在这里: 决定返回哪个图标的代码片段在这里: if ((value as string).Contains(@”\””)) { Uri uri = new Uri (“pack://application:,,,/Images/DeployWiz_Network.png”); BitmapImage source = new BitmapImage(uri); return source; } 如何更改返回图像的尺寸? 更改bitmapimage对象的尺寸似乎不起作用。 我可以返回哪些其他图像对象作为源?

内部具有不同方向的WPF虚拟化TreeView不虚拟化?

我在XAML中有一个包含多个图层的TreeView 。 使用此解决方案,我可以为每个不同的层获取XAML配置的外观,并确认它是UI虚拟化。 但是,当我将特定图层的VirtualizingStackPanel切换为具有不同的Orientation (无论是通过此解决方案的代码,还是使用Snoop无关紧要)时,UI虚拟化将关闭, TreeViewItem将尽快实现所有TreeViewItem随着我扩展该层。 在研究这种行为时,我注意到在您进入MeasureOverride函数时,在VirtualizingStackPanel的参考源中,您可以在第2116行找到此注释 : 如果此面板的方向不同(sic)其父级或后代,则进行计算 在这种情况下,微软似乎故意禁用了UI虚拟化。 所以我有两个问题: 为什么层之间的方向一致性很重要? 如何让UI虚拟化与具有不同方向的TreeView一起使用?

制作TreeViewItem包的一部分

我有一个TreeViewItem ,里面有多个部分 – 一个图标,一个标题和一段数据。 我试图把最后一部分包裹起来,而不是把所有东西都包起来,而我没有运气。 以下是问题的说明: 我尝试了一些我在Stack Overflow上发现的东西,没有运气。 我找到了三条建议: 将项目放在一个网格中,其中一列绑定到TreeView的实际宽度。 这是在下面的XAML中实现的,但似乎没有帮助。 使用ScrollViewer.HorizontalScrollBarVisibility = “Disabled” TreeView上的水平滚动,我也在下面的XAML中实现了。 在WrapPanel包装我需要的东西。 我尝试了这个,但结果不佳。 当我将整个TreeViewItem包装在一起时,我得到了难以控制的包装(整个项目包装,所以所有部分都包裹起来,看起来很糟糕)。 当我将所需的TextBlock包装在一个中时,我根本没有得到任何结果。 所以我把它拿出来了。 这是我为TreeViewItem的模板: 这是布局的图示,因此您可以看到TreeViewItem的组成方式: 基本上,灰色部分是图标,绿色部分只是项目之间的间隔,蓝色部分是标题和冒号(基本上与此问题无关),红色部分是实际内容。 这是我要包装的红色部分。 这是TreeView定义: 我觉得我做的事情很简单,但我不确定是什么。 有没有办法实现这一点,而不只是将TextBlock宽度锁定为任意的,如200?

仅在儿童节点中的复选框?

我有很多按类别分组的项目(节点),我想在TreeView中显示它们,其中父项是文本,子项是CheckBoxes : +-CategoryA(Text) —.A1(CheckBox) —.A2(CheckBox) +-CategoryB(Text) —.B1 —.B2 —.B3 +-CategoryC(Text) —.C1(CheckBox) —.C2(CheckBox) 这是一个代码示例: TreeNode testNodeA = new TreeNode(“A”); TreeNode testNodeB = new TreeNode(“B”); TreeNode testNodeC = new TreeNode(“C”); TreeNode[] array = new TreeNode[] { testNodeA, testNodeB, testNodeC }; TreeNode cat = new TreeNode(“Categorie X”, array); myTreeView.Nodes.Add(cat); 我已经在这里找到了类似的问题,但是解决方案并不优雅,因为它使用p/invoke来调用C ++代码。

如何为WPF TreeView设置DataTemplate以显示列表的所有元素?

我想在WPF中使用TreeViews可视化以下数据结构: class MyDataContext { ICollectionView Outers {get;set;} //… } class Outer { string Name {get;set;} IEnumberable Actions {get;set;} } class Inner { string Description {get;set;} Command OnClick {get;set;} } 这是我到目前为止的尝试: 因为我得到以下InvalidOperationException ,所以这次访问有问题: Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead. 如果我删除内部TreeView,则没有exception(当然也没有按钮)。

如何从数据库列文件路径创建树视图

我在数据库表中有一个列,其中包含表中每个文件的文件路径。 如何在c#中创建一个树视图,它将模仿我数据库中的filepath列。 以下是列中的示例文件路径列: jsmith/project1/hello.cs jsmith/project1/what.cs jwilliams/project2/hello.cs