如何从MainPage.xaml.cs调用LoadData()

本文关键字:调用 LoadData cs xaml MainPage | 更新日期: 2023-09-27 17:52:43

情况:

  • 我有一个主页xaml,它的数据上下文设置为MainVieweModelSampleData.xaml
  • 我有一个MainViewModel类,它包含ItemViewModel类类型的名为"Problems"的集合
  • 我在MainviewModel类中有一个LoadData函数,其中ItemViewModel类被实例化,实例被添加到Problems集合

问题:

我如何从MainPage.xaml.cs调用它目前我正在使用以下代码从app.xaml.cs调用它:

    private static MainViewModel viewModel;
    public static MainViewModel ViewModel
    {
        get
        {
            if (viewModel==null)
            {
                viewModel = new MainViewModel();
                viewModel.LoadData();
            }
            return viewModel;
        }
    }

如何从MainPage.xaml.cs调用LoadData()

在你的App.Xaml.cs中,你应该定义你的ViewModel如下,

private static MainViewModel _viewModel;
public static MainViewModel ViewModel
{
    get { return _viewModel ?? (_viewModel = new MainViewModel()); }
}

然后在主页中,您调用viewModel,

public MainPage()
{
    InitializeComponent();
    //Here you set the ViewModel
    this.DataContext = App.ViewModel;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    //Here you load the data   
    App.ViewModel.LoadData();
}