首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF TreeView节点和子节点

WPF TreeView节点和子节点
EN

Stack Overflow用户
提问于 2013-12-02 22:26:44
回答 2查看 2.5K关注 0票数 2

我将如何修改当前的TreeView,以支持父节点的‘关键,警报’,然后子节点将是该严重类型的消息。我使用的是绑定到ObservableCollection的TreeView。在每种消息类型中都有更多的数据,但我只想让用户看到其中的几个数据。然后,当用户单击其中一个子节点时,从集合中的该项中提取其他数据,并将其显示在需要的地方。我将ID添加为隐藏的,因为我不确定是否需要引用集合中引用该项的唯一引用。我还想为每个父节点默认一个不同的图标,子节点不会有一个图标。

希望我能描述一下,这样就可以理解了。

XMAL

代码语言:javascript
运行
AI代码解释
复制
 <TreeView x:Name="tvMessages" HorizontalAlignment="Left" Height="262" Margin="10,37,0,0" VerticalAlignment="Top" Width="248">
                <TreeView.ItemTemplate>
                    <HierarchicalDataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding Icon}" />
                            <TextBlock Text="{Binding Description}" />
                            <TextBlock Text="{Binding ID}" Visibility="Hidden" />
                        </StackPanel>
                    </HierarchicalDataTemplate>
                </TreeView.ItemTemplate>
            </TreeView>

MessageData

代码语言:javascript
运行
AI代码解释
复制
public class MessageData
{
    public Guid ID { get; set; }
    public string Severity { get; set; }
    public string Description { get; set; }
    public string ClientID { get; set; }
    public string Specialty { get; set; }
    public DateTime IssuedDate { get; set; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 00:39:51

它有点老了,但是这个MSDN博客应该会让你走上正确的方向,http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

票数 1
EN

Stack Overflow用户

发布于 2013-12-03 02:26:20

显示分层数据..。你需要有层次数据。最简单的方法是将MessageData类型的集合(子节点)添加到MessageData类中:

代码语言:javascript
运行
AI代码解释
复制
public class MessageData
{
    public Guid ID { get; set; }
    public string Severity { get; set; }
    public string Description { get; set; }
    public string ClientID { get; set; }
    public string Specialty { get; set; }
    public DateTime IssuedDate { get; set; }
    public ObservableCollection<MessageData> Messages { get; set; }
}

XAML所需的更改也很小:

代码语言:javascript
运行
AI代码解释
复制
<TreeView x:Name="tvMessages" ItemsSource="{Binding YourMessageDataObservableCollection}" HorizontalAlignment="Left" Height="262" Margin="10,37,0,0" VerticalAlignment="Top" Width="248">
    <TreeView.Resources>
        <DataTemplate DataType="{x:Type YourxmlNamespacePrefix:MessageData}">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding Icon}" />
                <TextBlock Text="{Binding Description}" />
                <TextBlock Text="{Binding ID}" Visibility="Hidden" />
            </StackPanel>
        </DataTemplate>
    </TreeView.Resources>
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Messages}" />
    </TreeView.ItemTemplate>
</TreeView>

值得注意的一点:

  • 您应该将您的Binding ObservableCollection设置为TreeView.ItemsSource属性。
  • 如果您希望在更改数据时更新UI,则应该在INotifyPropertyChange类中实现MessageData接口。
  • 通过将DataTemplate添加到TreeView.Resources部分而不设置x:Key属性,它将显式地设置在TreeView中的所有MessageData实例上。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20344313

复制
相关文章
【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )
可以使用 对象名.‘成员名’ 访问 Groovy 类的成员 , 这样写的好处是 , 不用将代码写死 , 在运行时可以自由灵活的决定要访问哪个成员 ;
韩曙亮
2023/03/30
2.5K0
【Groovy】Groovy 方法调用 ( 使用 对象名.成员名 访问 Groovy 类的成员 | 使用 对象名.‘成员名‘ 访问类的成员 | 使用 对象名[‘成员名‘] 访问类成员 )
scala 隐式转换
Scala 中可以让函数库调用变得更加方便的隐式变换和隐式参数,以及如何通过它们来避免一些繁琐和显而易见的细节问题。 内容主要包括 implicits 的使用规则、隐含类型转换、转换被方法调用的对象等
全栈程序员站长
2022/11/10
1.1K0
scala隐式转换[通俗易懂]
在之前的章节中有使用到隐式转换:scala 使用jackson解析json成对象
全栈程序员站长
2022/11/08
7800
mysql 隐式类型转换_scala的隐式转换
在mysql查询中,当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。下面分析两种隐式转换的情况
全栈程序员站长
2022/11/07
2K0
mysql 隐式类型转换_scala的隐式转换
Scala 【 14 隐式转换与隐式参数 】
​ Scala 的隐式转换,其实最核心的就是定义隐式转换函数,即 implicit conversion function 。
Lokinli
2023/03/09
8510
【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
在 ASTTransformation#visit 方法中 , 使用 source.AST 可以获取 Groovy 脚本的 AST 语法树节点 , 该节点是 ModuleNode 类型的 , 在一个 Groovy 脚本中可以定义多个 Class 类 , 其对应的 Class 语法树节点封装在了 ModuleNode 类的 List<ClassNode> classes = new LinkedList<ClassNode>(); 成员中 ;
韩曙亮
2023/03/30
9580
【Groovy】编译时元编程 ( ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 | 完整代码示例及进行编译时处理的编译过程 )
Scala基础——隐式转换
Scala的隐式转换,其实最核心的就是定义隐式转换函数,即implicitconversion function。定义的隐式转换函数,只要在编写的程序内引入,就会被Scala自动使用。Scala会根据隐式转换函数的签名,在程序中使用到隐式转换函数接收的参数类型定义的对象时,会自动将其传入隐式转换函数,转换为另外一种类型的对象并返回。这就是“隐式转换”。 通常建议将隐式转换函数的名称命名为“one2one”的形式。 隐式转换函数与普通函数唯一的语法区别就是,要以implicit开头,而且最好要定义函数返回类型。
羊羽shine
2019/08/16
7500
隐式转换函数_隐函数可以转化为显函数
隐式转换函数(implicit conversion function)是以implicit关键字声明的带有单个参数的函数,这样的函数将被自动应用,将值从一种类型转换为另一种类型。隐式转换函数叫什么名字是无所谓的,因为通常不会由用户手动调用,而是由Scala进行调用。但是如果要使用隐式转换,则需要对隐式转换函数进行导入。因此通常建议将隐式转换函数的名称命名为“one2one”的形式。 scala会考虑如下位置的隐式转换函数:
全栈程序员站长
2022/09/27
8910
Scala教程之:可扩展的scala
隐式类是在scala 2.10中引入的,隐式类指的是用implicit关键字修饰的类。在对应的作用域内,带有这个关键字的类的主构造函数可用于隐式转换。
程序那些事
2020/07/07
1.3K0
Scala代码编写中常见的十大陷阱
很多Java开发者在学习Scala语言的时候,往往觉得Scala的语法和用法有些过于复杂,充满语法糖,太“甜”了。在使用Scala编写代码时,由于语法和编写习惯的不同,很多开发者会犯相同或相似的错误。一位Scala狂热爱好者近日总结了十大这样的错误,以供参考。 【51CTO精选译文】对于支持并发和分布式处理、高可扩展、基于组件的应用程序来说,Scala的功能是很强大的。它利用了面向对象和函数式程序设计的优点。这种基于Java虚拟机的语言在宣布Twitter正使用它时受到了最多的冲击(相关51CTO评论:从S
Albert陈凯
2018/04/04
1.1K0
[C#]如何访问及调用类中私有成员及方法
本文为原创文章、源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称、作者及网址,谢谢!
CNXY
2019/05/24
2.9K0
静态方法(类方法)与非静态方法(成员方法/实例方法)
(访问变量区别)非静态方法可以访问类中的任何成员(静态与非静态//方法与变量); 但静态方法只能访问静态成员(包括方法和变量)。 (被调用区别)非静态方法必须由实例对象来调用,而静态方法除了可由实例对象调用外,还可以由类名直接调用。 (super,this)非静态方法中可以使用super、this关键字,但在静态方法中不能使用super、this关键字。
用户9854323
2022/06/25
2.3K0
scala快速入门系列【隐式转换和隐式参数】
本篇作为scala快速入门系列的第三十七篇博客,为大家带来的是关于隐式转换和隐式参数的内容。
大数据梦想家
2021/01/26
9480
scala快速入门系列【隐式转换和隐式参数】
【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 / 方法 | 类内部访问私有成员 )
在 类外部 创建的 Student 实例对象 , 是无法访问 __address 私有成员的 ;
韩曙亮
2023/10/11
4130
【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 / 方法 | 类内部访问私有成员 )
run timeimport : 成员变量、类、方法
runtime实现机制是什么,怎么用,一般用于嘛,你还能记得你所使用的相关头文件或者某些方法的名称吗? 回答:运行时机制,runtime库里面包含了跟类/成员变量/方法相关的API,比如获取类里面的所
且行且珍惜_iOS
2018/05/22
7130
Scala
  3、与过程化编程相⽐,函数式编程⾥的函数计算可以随时调⽤,函数式编程中,函数是⼀等公民
挽风
2023/10/17
2520
当网页图片不存在时不显示叉叉,显示默认图片的方法,管用的很!
有时候管理系统里面的产品图片没上传,或者因为网络原因传输过程中断了,图片没显示出来,就会显示一个叉叉,并且图片的占位符也不起作用了。昨晚上花了1个小时搜索、调试,验证了几种网络上的方法,最终有2种方法的确有效,鉴于代码优美的需要,我选择了如下一种。
崔文远TroyCui
2019/02/26
1.9K0
Spark基础-scala学习(八、隐式转换与隐式参数)
大纲 隐式转换 使用隐式转换加强现有类型 导入隐式转换函数 隐式转换的发生时机 隐式参数 隐式转换 要实现隐式转换,只要程序可见的范围内定义隐式转换函数即可。Scala会自动使用隐式转换函数。隐式转换函数与普通函数唯一的语法区别就是,要以implicit开头,而且一定要定义函数返回类型 案例:特殊售票窗口(只接受特殊人群,比如学生、老人等) scala> :paste // Entering paste mode (ctrl-D to finish) class SpecialPerson(val nam
老梁
2019/09/10
1.4K0
scala-sparkML学习笔记:迁移文件/ 通过 .!! 隐式方法直接执行系统命令
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
MachineLP
2019/11/14
4040
Scala:高阶函数、隐式转换(四)
scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是“头等公民”,它和Int、String、Class等其他类型处于同等的地位,可以像其他类型的变量一样被传递和操作。
Maynor
2021/12/07
6000
Scala:高阶函数、隐式转换(四)

相似问题

case类scala的隐式排序

26

scala类中的隐式应用方法

33

Scala -隐式类中的重载方法

118

对象中无法访问Scala隐式类成员。

14

当使用隐式类型类(方差+多态性)时,Scala无法访问getter方法。

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档