【问题标题】:How to call LoadData() from MainPage.xaml.cs如何从 MainPage.xaml.cs 调用 LoadData()
【发布时间】:2014-03-23 14:16:16
【问题描述】:

情况:

  • 我有一个主页 xaml,其数据上下文设置为 MainVieweModelSampleData.xaml
  • 我有一个 MainViewModel 类,其中包含一个名为“Problems”的 ItemViewModel 类类型的集合
  • 我在 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;
        }

    }

【问题讨论】:

    标签: c# wpf xaml windows-phone-8


    【解决方案1】:

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

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

    然后在您的 MainPage 中,调用 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();
    }
    

    【讨论】:

    • 我是一个初学者,你能告诉我下面的语句是如何调用LoadData方法的吗? this.DataContext = App.ViewModel;
    • 我修改了答案
    • VS 中的数据绑定应用默认具有调用 MainPage.xaml.cs 中的 LoadData 所需的代码,对吗??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2016-09-23
    • 1970-01-01
    • 2017-05-11
    • 2014-10-13
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多