如何从app.xaml访问当前的viewmodel

时间:2015-09-14 13:19:46

标签: c# wpf

当程序关闭时,我想保存对数据的任何更改。我目前有一种方法可以在 ViewModel 中执行此操作。我在OnExit文件中有app.xaml方法,但如何从此处访问 ViewModel 中的save-method?

App.xaml.cs

    protected override void OnExit(ExitEventArgs e)
    {
        //This is were I want to access the ViewModel

        base.OnExit(e);
    }

ViewModel.cs

    public void Save(){
        //This method save to the DB
    }

1 个答案:

答案 0 :(得分:2)

考虑使用观察者模式。 将您的视图模型注册为App的Close事件的订阅者。 当应用程序的关闭事件被触发时,通知您的订阅者(即视图模型),以便他们可以对该事件作出反应。

  • Prism提供了一个EventAggregator。

  • Xamarin.Forms提供了一个MessagingCenter。

  • Bizmonger提供MessageBus。

您可以使用指定的中介来管理发布者/订阅模型,而不需要彼此了解彼此。