我在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,这就是为什么我有点困惑。如果有人有想法提供帮助吗?