是否有任何推薦的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