我的目标是访问整个应用程序的可绑定属性。但是我当前的框架 ViewModel 实例创建了多次
我的要求:我在bottomTray(CheckuoutViewModel)中有购物车数量我想在应用页面中的任何位置增加购物车数量,但是在此购物车数量在返回点击时不会更新,它仅适用于前向导航,CheckoutViewModel背后的原因每次都创建实例。这样我就可以尝试更早地进行即时创作。
这里我列出了示例 ViewModel 和调用方法
- 登录视图模型
- Checkuout ViewModel(此视图模型适用于所有页面)
- BaseNavigationViewModel(其 BaseViewModel)
截至目前,我每次都在调用 BindinContext 时,
- 新的登录视图模式(导航)
- new CheckoutViewModel(navigation) 当像 ViewModel Locator 这样的应用程序启动时间时,如何创建所有 ViewModel 实例?
我试过了
public static ViewModelLocator Locator
{
get { return locator ?? (locator = new ViewModelLocator()); }
}
和 ViewModel 定位器
public ViewModelLocator()
{
navigation = App.Current.MainPage.Navigation;
}
internal CustomTabBarViewModel CustomTabBarVM
{
get
{
return customTabBarVM ?? (customTabBarVM = new CustomTabBarViewModel(navigation));
}
}
和 CustomTabBar.xaml.cs
public CustomTabBar()
{
viewModel = App.Locator.CustomTabBarVM;
InitializeComponent();
BindingContext = viewModel;
}
和期望
App.Locator.CustomTabBarVM.BadgeCartCount = OrderObject.Instance.ORDER_OBJECT.Items.Count;
这种方法运行良好,但会产生一些导航问题