例如,从新闻列表页面移动到详细新闻。 Сan我将带有新闻列表的选定项目传递给详细信息? 在newsLisViewModel
中NewsDetailVm.SelectedNews = SelectedNews;
await Navigation.PushAsync(new NewsDetailPage());
或者我应该只处理页面本身?
await Navigation.PushAsync(new NewsDetailPage(e.Item as News));
答案 0 :(得分:2)
您可以与MainViewModel()
和工厂进行沟通,该工厂提供此MainViewModel()
public class MainViewModelFactory{
private static MainViewModel main{get;set;}
public static MainViewModel GetReference(){
if(main == null){
main = new MainViewModel();
return main;
}else
return main;
}
}
MainViewModel具有每个其他所需Viewmodel的实例。
因此,您可以使用MainViewModelFactory.GetReference().DoAnything();
每个ViewModel你拥有的东西。
但是像@Charleh说的那样,这是一种非常耦合的方式。我没有使用Pub Sub,但here是UWP MVVM Pub Sub的教程,如果你需要一种更宽松的方式来实现你的ViewModel。