【发布时间】:2020-01-14 04:05:57
【问题描述】:
我想在同一个视图 (MainPage.xaml) 中显示几个不同的 ViewModel。
我是新手,不知道该怎么做。我试图创建一个 MainViewModel:
public class MainViewModel : ViewModelBase, INotifyPropertyChanged
{
WeatherViewModel weatherView = new WeatherViewModel();
ForecastViewModel forecastViewModel = new ForecastViewModel();
DeparturesViewModel departuresViewModel = new DeparturesViewModel();
CalenderViewModel calenderViewModel = new CalenderViewModel();
}
public void GetAllViews()
{
weatherView.GetCurrentTemp();
forecastViewModel.GetForecastTemp();
departuresViewModel.GetDepartures();
calenderViewModel.GetCalender();
}
在我的 MainPage.xaml.cs 我有这个:
public MainPage()
{
this.InitializeComponent();
this.DataContext = new MainViewModel();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
var vm = this.DataContext as MainViewModel;
vm.GetAllViews();
}
我设法像这样单独显示每个 ViewModel:
this.DataContext = new WeatherViewModel();
但我想在同一个视图中显示所有内容。
【问题讨论】:
-
您想将所有 ViewModel 数据显示到一个视图中?
-
是的。这是不好的做法吗?我想同时显示所有数据。
-
是的,这是不好的做法...您必须在一个 ViewModel 中收集所有数据并连接到 View... example.. ViewModel 包含模型形式的数据
-
我有 4 个包含不同数据的不同 ViewModel。你建议我改用 1 ViewModel 吗?
-
是的应该是一个 ViewModel 但你可以创建多个 Model
标签: c# mvvm view uwp viewmodel