Xamarin.forms 为什么Prism.Forms对话框服务不起作用?

Xamarin.forms 为什么Prism.Forms对话框服务不起作用?,xamarin.forms,prism,Xamarin.forms,Prism,我更新到7.2,我正在尝试使用DialogService。 按照发行说明中的示例,如果视图基于网格,则它似乎无法注册到容器Unity。如果我将视图更改为ContentPage,我可以让它注册到容器中,但当我运行测试并点击一个按钮(该按钮应通过ShowDialog启动对话框)时,我会出现以下错误: Specified cast is not valid. at Prism.Services.Dialogs.DialogService.CreateViewFor (System.String n

我更新到7.2,我正在尝试使用DialogService。 按照发行说明中的示例,如果视图基于网格,则它似乎无法注册到容器Unity。如果我将视图更改为ContentPage,我可以让它注册到容器中,但当我运行测试并点击一个按钮(该按钮应通过ShowDialog启动对话框)时,我会出现以下错误:

Specified cast is not valid.
  at Prism.Services.Dialogs.DialogService.CreateViewFor (System.String name) [0x00000] in d:\a\1\s\Source\Xamarin\Prism.Forms\Services\Dialogs\DialogService.cs:154 
  at Prism.Services.Dialogs.DialogService.ShowDialog (System.String name, Prism.Services.Dialogs.IDialogParameters parameters, System.Action`1[T] callback) [0x00044] in d:\a\1\s\Source\Xamarin\Prism.Forms\Services\Dialogs\DialogService.cs:31
我不确定出了什么问题。我的代码中唯一的区别是,我的测试按钮位于选项卡页面的contentpage中

我认为需要用一个有效的例子来更新文档


感谢您的帮助。

对话框必须从类型视图派生。由于RegisterDialog扩展是强类型的,因此它强制执行这一点。如果你规避了注册或者使用了注册导航,那么问题完全在于你做得不对

您在这里报告的错误是,当为对话框创建视图时,它无法将其强制转换为View类型

请注意,在App.RegisterTypes中,您会有如下内容:

containerRegistry.RegisterDialog<DialogA>();

好吧,我想我知道怎么回事了。当我添加对话框视图时,我只使用了contentpage模板,它在一长串注册列表的末尾添加了一个容器注册。我手动添加了一个注册,我想这会导致一些问题。嗨,如果问题解决了,记得在回答中更新,那么其他人就会知道解决方案。