Как создать модель представления, которая в некоторых случаях относится к статическому объекту, а в других относится к экземпляру и сохраняет привязки?MVVM Pass-Through Binding
Позволяет сказать, что я хотел, чтобы мой 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;
}
}
Теперь мой вопрос, как я могу передать в статическом экземпляре корзины и все еще позволяем привязки из View в ViewModel работать.
Edit:
У меня есть статический класс DATAACCESS, в котором я объявляю одноплодный/статический экземпляр Корзины:
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 (Новый элемент()), VM не знает об изменениях этих данных.
_ «как я могу передать статический экземпляр Cart» _ - укажите «статический экземпляр». Это звучит как оксюморон для меня. Также, пожалуйста, объясните, что означает «работа». Исправьте свой вопрос, чтобы он включал хороший [mcve], четко показывающий, что вы пробовали и/или хотите сделать код. Объясните _precisely_, что этот код делает сейчас, и что вы хотите, чтобы он делал вместо этого. Теперь от вашего поста совсем не ясно, что именно вы хотели бы сделать, и какое поведение вы хотите от кода. –