WPF MVVM DataContext变为null

时间:2017-02-21 16:14:59

标签: c# wpf mvvm mahapps.metro

我在WPF计划中遇到问题。我不知道为什么,但有时(随机)我的View中的DataContext变为null。 我在MvvmLight库中使用mvvm messenger在我的视图中调用了一个函数。

private void MyView_Loaded(object sender, RoutedEventArgs e)
{
    Messenger.Default.Register<MessageType>(this, HandleMessage);
}

此函数显示进度对话框,需要访问DataContext(VM)才能调用函数。

private async void HandleMessage()
{
    var metroWindow = (Application.Current.MainWindow as MetroWindow);
    var controller = await metroWindow.ShowProgressAsync("Title", "Message");
    controller.SetIndeterminate();

    await ((MyViewModel)DataContext).MyFunction();

    await controller.CloseAsync();
}

我在日志中收到以下错误:

---message: Object reference not set to an instance of an object.
---source: MyProgram
---stacktrace:    at Path.To.MyView.<HandleMessage>d__11.MoveNext() in myfile.xaml.cs

该程序实际上从不更新DataContext,这就是为什么我有点困惑。如果有人有想法提供帮助吗?

0 个答案:

没有答案