gpt4 book ai didi

c# - .Net 不可用 "Extension Property"之类的功能

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:57 26 4
gpt4 key购买 nike

假设我有一个由“Person”类表示的层次结构。 Person 类(Person 类型)中的 ParentPerson 属性启用分层表示,它可以是任意级别的深度。它不必完全是这种方式,只是想象这种需要,而不管实现如何。

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

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

我不想使用此处建议的扩展方法进行包装,因为我希望添加的属性可以绑定(bind)到 WPF TreeView 中。

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

最佳答案

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

关于c# - .Net 不可用 "Extension Property"之类的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com