问题描述
我已将使用Prism 6.2.0的WPF项目构建更新为Prism 8.0。我正在使用.NET Framework 4.7。
我在应用程序的很多地方都使用InteractionRequest
,以便打开一个弹出窗口来收集用户信息。更新项目后,出现此错误:
有人知道如何解决此问题吗? InteractionRequest
在Prism 8.0中是否已弃用?如果是的话,我该如何替代该功能?
解决方法
Prism 7.2.0.1367中的InteractionRequest
和PopupWindowAction
API被新的对话框服务所替代。以下GitHub问题涵盖了这样做的原因:
引用release notes的Brian Lagunas:
当前,使用Prism显示任何类型的对话框的唯一方法是将PopupWindowAction与System.Windows.Interactivity结合使用。 [...]它过于复杂,冗长,难以实施且非常有限。 [...]
相反,我创建了一个新的IDialogService API,它将完全替代PopupWindowAction。该服务将使开发人员能够显示他们想要模态对话框或非模态对话框,并完全控制其对话框逻辑。
您可以参考dialog service documentation来学习如何使用它并进行迁移。另请注意,Prism 8添加了对多个对话框窗口主机的支持,Prism 7.x不支持。