我们假设我有一个以" Person"类。 ParentPerson
类(类型Person
)中的Person
属性启用了层次结构表示,它可以是任何级别的深层。它不一定是这种方式,只是想象一下这种需要,无论实现如何。
层次结构需要在树视图控件中显示。与层次结构无关但与UI关联,我希望具有IsExpanded
(或折叠)等属性来存储必须在显示中展开或折叠哪些节点。这些属性显然不属于Person
类。
通过继承Person
类并添加必要的UI相关属性,这是最好的方法吗?我理解"扩展属性" (如扩展方法)在.Net中不可用。
我不想使用此处建议的扩展方法进行换行,因为我希望添加的属性可以在WPF树视图中绑定。
实现这一目标的最佳/正确方法是什么?
答案 0 :(得分:1)
您应该使用架构设计模式,例如(在WPF的情况下)Model-View-ViewModel(MVVM)。有一篇专门针对此场景的优秀文章:Simplifying the WPF TreeView by Using the ViewModel Pattern。建议创建一个PersonViewModel
包装您的Person
对象(包括派生类的实例),仅公开与UI相关的属性,以及新的IsSelected
和{{1}可以由IsExpanded
元素绑定的属性。