导航到其他页面 IocContainers 和 MVVM light
Posted
技术标签:
【中文标题】导航到其他页面 IocContainers 和 MVVM light【英文标题】:Navigate to other page IocContainers and MVVM light 【发布时间】:2016-03-31 13:34:27 【问题描述】:我正在使用 MVVM light 制作一个 windows 通用 10 应用程序。
但是现在,如果我单击 ShowWeatherPage
上的某个项目,我将导航到 ShowWeatherDetailPage
以获取有关单击项目的更多详细信息。但我不知道我该怎么做。你能帮我做这件事吗?
您可以在下面找到我的代码。我使用 IocContainers,每个页面都有一个视图模型,并且只有命令绑定。
IocContainer
公共类IocContainer 静态 IocContainer() SimpleIoc.Default.Register(false); SimpleIoc.Default.Register(false); SimpleIoc.Default.Register (false); SimpleIoc.Default.Register (false); SimpleIoc.Default.Register (false); 公共静态 ShowWeatherPage ShowWeatherPage 获取 返回 SimpleIoc.Default.GetInstance (); 公共静态 ShowWeatherViewModel ShowWeatherViewModel 获取 返回 SimpleIoc.Default.GetInstance (); 公共静态应用程序视图模型应用程序视图模型 获取 返回 SimpleIoc.Default.GetInstance(); 公共静态 ShowWeatherDetailPage ShowWeatherDetailPage 获取 返回 SimpleIoc.Default.GetInstance (); 公共静态 ShowWeatherDetailViewModel ShowWeatherDetailViewModel 获取 返回 SimpleIoc.Default.GetInstance ();
查看模型
ApplicationViewModel
公共类ApplicationViewModel:ViewModelBaseClass 私有页面 _currentPage = IocContainer.ShowWeatherPage; 公共页面 CurrentPage 得到 返回_currentPage; 放 如果(_currentPage != 值) _currentPage = 值; OnPropertyChanged(); 公共无效导航(页面页面,对象属性) 当前页面 = 页;
ShowWeatherViewModel
公共类 ShowWeatherViewModel:ViewModelBaseClass #区域变量 私人项目_selectedVillage = null; #endregion 变量 #region 属性 公共项目 SelectedVillage 得到 返回_selectedVillage; 放 如果 (_selectedVillage != 值) _selectedVillage = 价值; ShowDetailPage(); #endregion 属性 #region 构造函数 公共 ShowWeatherViewModel() #endregion 构造函数 #region 方法 私人无效 ShowDetailPage() ApplicationViewModel appVm = new ApplicationViewModel(); appVm.Navigate(IocContainer.ShowWeatherPage, SelectedVillage); #endregion 方法
ShowWeatherDetailViewModel
公共类 ShowWeatherDetailViewModel:ViewModelBaseClass
ViewModelBaseClass
公共类 ViewModelBaseClass: INotifyPropertyChanged 公共事件 PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged([CallerMemberName] string propertyName = "") if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
页面
主页面
网格> 页面>
ShowWeatherPage
【问题讨论】:
【参考方案1】:您可以使用 MVVM Light 的导航服务导航到另一个视图。
http://www.mvvmlight.net/doc/nav1.cshtml
https://marcominerva.wordpress.com/2014/10/10/navigationservice-in-mvvm-light-v5/
【讨论】:
以上是关于导航到其他页面 IocContainers 和 MVVM light的主要内容,如果未能解决你的问题,请参考以下文章