是否有任何推荐的MVVM视图模型的结构设计模式允许将不同的状态和功能动态添加到基础对象,但是仍然在所有相关属性上维护INotifyPropertyChanged?像装饰模式,但mvvm准备好了吗?MVVM查看模型的结构设计模式?
2
A
回答
2
是的。 WPF绑定系统将使用custom type descriptor在运行时与ViewModel的属性进行交互。我之前使用过这种方法来使KeyValueCollection中的键成为集合上的属性。
这有两个重要的好处。它简化结合:
DataContext.SomeCollectionProperty[SomeKey]
可以简化为DataContext.SomeCollectionProperty.SomeKey
,如果您为数据上下文,DataContext.SomeKey
这是因为它得到一样简单的自定义类型说明符。
它修复了我认为的一个bug - 格式化字符串即使在属性为空时也会被渲染。使用CTD,您可以跳过null(和DBNull)属性,确保如果属性不存在,则不会呈现格式字符串:
想象一下,您必须呈现一个double?
,并将其呈现为美元数量。如果您使用以下绑定:{Binding Price, FormatString='Price: {0:c}'}
并且价格为空,则在用户界面中获得以下内容:Price: $
。这很丑陋。但是,如果Price
是您UI上基于PropertyDescriptor的属性,那么当价格为null时,您可以选择不通过CTD报告此属性。这可以防止格式字符串被渲染。
这是MSDN上关于decorating your types with a CTD的一个很好的链接。
1
从我的实验中,你可以使用.NET 4中的ExpandoObject来处理你想要的东西。 ExpandoObject实现INPC。我一直在创建一个基于ExpandoObject的DynamicViewModel,它执行一些其他的事情,比如计算属性,它们之间有相互依赖关系,Delegate Command注册。
相关问题
- 1. MVVM模型设计
- 2. 查看模型设计
- 3. django设计模型结构
- 4. MVVM查看模型DTO
- 5. MVVM结构。模型类
- 6. 查询WPF上的MVVM设计模式
- 7. 结构设计模式
- 8. Android MVVM设计模式
- 9. MVVM设计模式问题
- 10. 数据结构的设计模式
- 11. 亲子结构的设计模式
- 12. 包括局部视图应用模式视图查看模型设计模式
- 13. 查看模型设计的领域模型多对多关系
- 14. MVVM Silverlight 4父子查看模型
- 15. MVVM绑定cutom属性查看模型
- 16. MVVM视图模型查看通讯
- 17. WPF - MVVM - 查看模型层次
- 18. MVVM和WCF - 查看模型和模型的关系
- 19. MVC设计模式 - 设计模型
- 20. 代码设计模式结构
- 21. PHP代码设计,结构,模式..?
- 22. 模型演化架构设计查询
- 23. WPF MVVM设计视图模型
- 24. MVVM:设计视图模型架构,聚合/依赖的ViewModels
- 25. 几何类型层次结构的整洁设计模式
- 26. 如何设置模型在模型(MVVM)
- 27. 使用iframe进行mvvm设计模式
- 28. MVVM模式查询
- 29. MVP是设计模式还是架构模式? MvC和MvvM怎么样?
- 30. WPF MVVM - 基于XSD的设计模型查询
如果您没有动态可用,那么在使用这种技术之前,我已经使用了这种技术。 – 2011-03-21 10:02:11