[英]Catel show dialog window inside a ViewModel
请帮忙。 我以任何方法将此构造放入主ViewModel
Thread thread = new Thread(() =>
{
_visualizerService.ShowDialog(new PurchaseWindowViewModel());
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
而且我在PurchaseWindowViewModel.xaml.cs中有例外
PresentationFramework.dll中发生类型'System.InvalidOperationException'的异常,但未在用户代码中处理。 附加信息:无法访问对象Freezable“ Catel.Windows.Media.Effects.GrayscaleEffect”
通过线程,因为它不能被冻结。
几乎不需要在单独的线程上创建窗口,只有在极端情况下才需要“创建”窗口。 如果以下答案无法解决您的问题,请更新您的问题,为什么要在非UI线程上使用窗口。
我建议您改用以下代码:
await _visualizerService.ShowDialogAsync<PurchaseWindowViewModel>();
或非异步:
_visualizerService.ShowDialog<PurchaseWindowViewModel>();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.