您可以使用装饰器模式在C#WPF MVVM项目中定义属性网格的属性定义吗?所以我想在属性网格中实现一个特定的功能,特别是能够让属性处理其属性网格的更改,并在运行时生成更多属性作为响应。
因此,如果有人从属性网格中的下拉菜单中选择一个特定选项,则根据所选的选项,它会在其下生成不同的属性?会使用装饰器模式来定义属性网格的不同视图的排列效率吗?或者是否有更好的模式或方法来处理这种类型的功能?
答案 0 :(得分:0)
当您考虑激活其他属性行时,这个想法听起来很不错。处理程序只会用包装原始实例的新PropertyGrid
实例实例替换当前AddiotionalSelection1PropGrid
实例。
但是,当您想停用其他属性时会发生什么?你想遍历装饰链并删除应该停用的装饰器吗?我想这可能会变得有点难看。为了做到这一点,你必须使decorateé可用于装饰者的外部。这种破坏装饰器模式,因为装饰实例不具有与decoratée相同的界面。
这个解决方案可能是为扩展属性列表的每个装饰器创建一个逆装饰器。反向装饰器将删除所有其他属性,以防它们存在。逆装饰器在代码中非常优雅地解决了这个问题,但是有一些缺点: