.Net不可用"扩展属性"像功能

时间:2014-06-15 11:14:19

标签: c# .net wpf data-binding treeview

我们假设我有一个以" Person"类。 ParentPerson类(类型Person)中的Person属性启用了层次结构表示,它可以是任何级别的深层。它不一定是这种方式,只是想象一下这种需要,无论实现如何。

层次结构需要在树视图控件中显示。与层次结构无关但与UI关联,我希望具有IsExpanded(或折叠)等属性来存储必须在显示中展开或折叠哪些节点。这些属性显然不属于Person类。

通过继承Person类并添加必要的UI相关属性,这是最好的方法吗?我理解"扩展属性" (如扩展方法)在.Net中不可用。

我不想使用此处建议的扩展方法进行换行,因为我希望添加的属性可以在WPF树视图中绑定。

实现这一目标的最佳/正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该使用架构设计模式,例如(在WPF的情况下)Model-View-ViewModel(MVVM)。有一篇专门针对此场景的优秀文章:Simplifying the WPF TreeView by Using the ViewModel Pattern。建议创建一个PersonViewModel包装您的Person对象(包括派生类的实例),仅公开与UI相关的属性,以及新的IsSelected和{{1}可以由IsExpanded元素绑定的属性。