我有一个程序在 .NET 4.0 / Windows 7 上崩溃,但在 .NET 4.5 / Windows 8+ 上运行良好。销毁控件时(例如,通过关闭控件所在的窗口),WPF 似乎试图设置DataContext
为一个类型的对象MS.Internal.NamedObject
——这失败了,因为控件总是期望数据上下文是与之相关的视图模型看法:
System.InvalidCastException:无法将“MS.Internal.NamedObject”类型的对象转换为“Foo.Bar.BazViewModel”类型。
这里发生了什么?我可以要求 WPF 不要像这样弄乱数据上下文,还是应该在发生这种情况时禁用控件?