导航到其他页面 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的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击导航栏导航到其他页面

用于链接/导航到其他 JSF 页面的 URL

从其他aspx页面导航到GridView的某个页面

移动到其他页面时无法保持底部导航栏颤动

如何在flutter中从streambuilder导航到其他页面?

Flutter:无法导航到另一个页面