2017-02-21 61 views
0

如何創建視圖模型,在某些情況下,其某個屬性引用靜態對象而其他屬性引用實例並仍保留綁定?MVVM傳遞綁定

可以說,我希望我的視圖模型爲「ShoppingCartPage」看起來像這樣:

public class ShoppingCartViewModel 
{ 
    public ShoppingCart Cart { get; set; } 
    public void AddItem(Item item); 
    public void RemoveItem(Item item); 
    public ShoppingCartViewModel(ShoppingCart cart) 
    { 
     Cart = cart; 
    } 
} 

現在,我的問題是如何能夠通過在車的靜態實例,並仍允許的綁定查看到視圖模型上班。

編輯:

我有在我宣佈車的單/靜態實例的靜態數據訪問類:

public static class DataAccess 
{ 
    public static Cart UserCart = new Cart(); 
    ... 
} 

我用它來從應用的任何填充的車。

我可以創建直接綁定到這個對象的視圖。

不過,我寧願移動到我可以處理車序列化實例從服務器上像這樣的模式:

public class ShoppingCartPage 
{ 
    public ShoppingCartPage(ShoppingCartViewModel vm) 
    { 
     //psuedo code 
     Label1.Bind(SomeProperty, vm.Cart); 
    } 
} 

,對於其中vm.Cart沒有改變的情況下工作。但是,當Cart是DataAccess.UserCart並且我調用DataAccess.UserCart.AddItem(New Item())時,VM不知道這些數據的更改。

+0

_「我如何傳入購物車的靜態實例」_ - 請定義「靜態實例」。這聽起來像對我來說是一種矛盾。另外,請解釋「工作」的含義。解決你的問題,以便它包含一個很好的[mcve],清楚地顯示你已經嘗試過和/或希望代碼執行什麼。現在解釋_precisely_該代碼的作用,以及您希望它做什麼。目前,你的帖子並不完全清楚你想要做什麼,也不知道你希望從代碼中得到什麼樣的行爲。 –

回答

0

我真的過度想到這裏。我不確定我的Cart類是一個模型還是視圖模型或其他東西,我試圖將它放入其中,但我真正需要的是使ShoppingCartViewModel知道購物車變化的事件!