我希望主視圖模型有一個特定的列表,然後從許多其他視圖模型訪問。從另一個ViewModel訪問另一個屬性
例如,在MainViewModel.cs我將有50個號碼的列表,然後 在NumListViewModel.cs,我想訪問,以顯示它作爲一個列表,並在AddNumViewModel.cs我d喜歡能夠更新該列表。
有人建議我使用events/evenaggerator,但是不幸的是,對於我所知道的所有我可以做的事情是將數字從一個視圖發送到另一個視圖並告訴它更新列表,但是問題在於,隨着程序的增長,我需要在主視圖模型中擁有大量訂閱者,並且當發生某些事情時,我將不得不根據訂閱者數量「發佈」事件,這使得維護更加困難。
我還發現了另一個答案,指示在mainVM中創建另一個VM的實例,參數設置爲「this」,它是對主VM的引用。它可以工作,但是再次,它可能會變得很長。
所以我的問題是,有沒有更好的方式來訪問另一個虛擬機的屬性?
就像在字面上有一個在mainVM中保存列表的類的實例,然後就能夠從其他VM更新/訪問它,而不必明確地編程哪個VM。會讓生活變得如此簡單。
在您的答案中,請儘量避免提示框架。 雖然有一些非常好的,但我希望能夠自己做到這一點。
例如:
MainVM.cs:
public class MainVM
{
List lst = new List(); //Let's just say it's full...
}
OtherVM.cs:
public class OtherVM
{
lst.Add(3);
}
PS:是的,我知道它已經被問則已,是的,我已經做了我的研究,但我發現的答案太'靜態',我猜?
使用棱鏡來解決您的MainViewModel的實例。 – 2013-05-12 11:02:00