【发布时间】: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
【问题讨论】:
标签: c# mvvm-light win-universal-app ioc-container commandbinding