C# .Net';“s不可用”;扩展属性“;相似功能
假设我有一个由“Person”类表示的层次结构。C# .Net';“s不可用”;扩展属性“;相似功能,c#,.net,wpf,data-binding,treeview,C#,.net,Wpf,Data Binding,Treeview,假设我有一个由“Person”类表示的层次结构。Person类(类型为Person)中的ParentPerson属性启用分层表示,并且可以是任何级别的深度。它不必完全是这样,只要想象一下这种需要,而不管实现如何 层次结构需要显示在treeview控件中。与层次结构无关,但与UI关联,我希望使用诸如IsExpanded(或collapsed)之类的属性来存储必须在显示中展开或折叠的节点。这些属性显然不属于Person类 继承Person类并添加必要的UI相关属性是实现这一点的最佳方法吗?我知道“扩
Person
类(类型为Person
)中的ParentPerson
属性启用分层表示,并且可以是任何级别的深度。它不必完全是这样,只要想象一下这种需要,而不管实现如何
层次结构需要显示在treeview控件中。与层次结构无关,但与UI关联,我希望使用诸如IsExpanded
(或collapsed)之类的属性来存储必须在显示中展开或折叠的节点。这些属性显然不属于Person
类
继承Person
类并添加必要的UI相关属性是实现这一点的最佳方法吗?我知道“扩展属性”(如扩展方法)在.Net中不可用
我不想像这里建议的那样使用扩展方法进行包装,因为我希望添加的属性可以绑定到WPF树视图中
实现这一点的最佳/正确方法是什么?您应该使用架构设计模式,例如(在WPF的情况下)Model–View–ViewModel(MVVM)。有一篇专门针对此场景的优秀文章:。建议创建一个
PersonViewModel
,它包装Person
对象(包括派生类的实例),只公开与UI相关的属性,以及新的IsSelected
和IsExpanded
属性,这些属性可以被treevieItem
元素绑定。完美。非常感谢你。