HI,MVVMLight - 視圖模型引用了其他的ViewModels
我使用MVVMLight,我想一個特定的VM引用到另一個虛擬機的性能。目前,我使用ViewModelLocator.SomeViewModelStatic來做到這一點。有時候,我還想使用另一種視圖模型的方法。並且還使用ViewModelLocator.SomeViewModelStatic來使用其他ViewModels的方法。
這是ViewModels之間正確的通信方式嗎?
HI,MVVMLight - 視圖模型引用了其他的ViewModels
我使用MVVMLight,我想一個特定的VM引用到另一個虛擬機的性能。目前,我使用ViewModelLocator.SomeViewModelStatic來做到這一點。有時候,我還想使用另一種視圖模型的方法。並且還使用ViewModelLocator.SomeViewModelStatic來使用其他ViewModels的方法。
這是ViewModels之間正確的通信方式嗎?
有時我會構建一個VM的樹。例如:我通過將Person和Hobbies VM添加到PersonHobbies VM來創建PersonHobbies VM。這個類將擁有跨越其他虛擬機的所有命令。
我不願意將Hobbies VM鏈接到Person VM(或反向),因爲在沒有Person VM(或反向)的情況下使用Hobbies VM會變得更加困難。
同樣我創建視圖:在這個例子中,我可以爲Person和Hobbies創建視圖,並在構建PersonHobbies視圖時使用這些視圖。
我想會使用這種方法...你有一個示例ViewModels與其他ViewModels進行通信的示例嗎? – icube 2011-05-19 13:35:29
我沒有一個示例,但只需將一個ViewModel傳遞給另一個。當然如果你的通訊比較複雜,你可以使用消息(如:http://blog.galasoft.ch/archive/2009/09/27/mvvm-light-toolkit-messenger-v2-beta.aspx)或事件聚合器(如Caliburn Micro:http://iserialized.com/getting-started-with-caliburn/) – 2011-05-19 15:26:01