如何创建一个视图模型,在某些情况下,其中一个属性引用静态对象,而在其他情况下,它引用一个实例并仍然保留绑定?
让我们说我希望我的viewmodel用于" 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;
}
}
现在,我的问题是我如何传递Cart的静态实例,并仍允许从View到Viewmodel的绑定工作。
编辑:
我有一个静态DataAccess类,我在其中声明了Cart的单例/静态实例:
public static class DataAccess
{
public static Cart UserCart = new Cart();
...
}
我用这个来从应用程序的任何地方填充购物车。
我可以创建直接绑定到此对象的视图。
但是,我宁愿转到一种模式,我可以从服务器中处理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 :(得分:0)
我真的在想这里。我不确定我的Cart类是模型还是视图模型或其他什么东西,我试图将其纳入其中一个但我真正需要的是使ShoppingCartViewModel知道购物车中的更改的事件!