假設我有一個視圖綁定到ViewModel A其中有一個可觀察的集合Customers。如何在MVVM模式中使用WPF轉換器?
此MVVM模式的一個優點是,我還可以將視圖綁定到使用不同數據填充它的視圖模型。
但是,如果在我的查看轉換器轉換器顯示我的客戶,例如,我有一個「ContractToCustomerConverter」,它接受合同並返回相應的客戶進行展示。
這樣做的問題是轉換器存在MVVM模式之外,因此不知道我的視圖模型具有其它來源的客戶。
- 是那裏的查看的方式來視圖模型傳遞到轉換器,使其參與的MVVM模式提供分開呢?
- 有沒有辦法讓我以某種方式在我的ViewModel中包含Converter,以便轉換器使用ViewModel提供的當前依賴關係?
- 或轉換器只是榮耀代碼隱藏,因此不在MVVM模式中使用,所以如果您使用MVVM,那麼你只需創建自己的「轉換器」(你的ViewModel類的方法),它返回像Image對象,可見性對象,FlowDocuments等等,以便在視圖上使用,而不是使用轉換器?
(我看到在隨附MVVM Template Toolkit download的WPF演示應用程序的使用轉換器後,就對這些問題,請參閱「信使示例」拆包後)。
好的我認爲你不應該在不同的虛擬機之間共享你的觀點,但是一個ViewModel應該能夠被不同的視圖共享,因此MVVM的可測試性的好處,對吧?您應該能夠將模擬視圖和模擬模型連接到ViewModel,以確保從模擬模型接收到的所有數據組合都能生成暴露給視圖的正確屬性值。你會同意嗎? – 2009-06-17 15:07:26