C# 查找与我的ViewModel关联的视图的所有者
我正在实现一个C# 查找与我的ViewModel关联的视图的所有者,c#,wpf,mvvm,prism,C#,Wpf,Mvvm,Prism,我正在实现一个IDialogService。这将从我的ViewModel调用,它不知道视图 推断所有者提供给ShowDialog的最佳方法是什么 如果我可以避免注册哪个视图绑定到哪个ViewModel,那就太好了 如果有帮助,我正在使用Prism(v6)。您可以尝试以下方法: window.Owner = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive); window.
IDialogService
。这将从我的ViewModel调用,它不知道视图
推断所有者提供给ShowDialog
的最佳方法是什么
如果我可以避免注册哪个视图绑定到哪个ViewModel,那就太好了
如果有帮助,我正在使用Prism(v6)。您可以尝试以下方法:
window.Owner = Application.Current.Windows.OfType<Window>().SingleOrDefault(x => x.IsActive);
window.Owner=Application.Current.Windows.OfType().SingleOrDefault(x=>x.IsActive);
window.Owner=Application.Current.MainWindow如何?@Kirenenko我考虑过这个问题,但是如果(不是很理想,但是如果)主窗口打开一个新窗口,并且这个窗口打开一个对话框,它将不会是新窗口的模态?是的,我认为它将是主窗口的模态,不管调用的窗口是什么。然后您可以尝试Application.Current.Windows.OfType().SingleOrDefault(x=>x.IsActive)代码>@Kirenenko这实际上可能有效(我看不出任何不适合这种方法的场景)。你应该在上面贴个答案谢谢。我只是添加了一些其他情况(例如,如果没有窗口处于活动状态,则将“第一个”视为非活动状态),或者如果根本没有窗口,则只需返回null,并且在调试它时也要小心。我记得一些失败,因为主活动窗口是调试器。