【发布时间】:2016-09-20 01:55:13
【问题描述】:
我正在为我的下一个客户项目试用 Prism.Forms。不幸的是,我发现我的样本出现了奇怪的行为。
借口 似乎 XF 或 Prism 不喜欢我,包括现有的 XAML 页面(Brian Lagunas - The man - 他自己在 Evolve 会议上也提到过)。但是重命名页面也会将其丢弃,并且 ViewModelLocator 似乎无法再找到 ViewModel。即使我重新创建具有相同名称的页面,它也无法找到它 ViewModel。手动设置 BindingContext 有效,但我试图不为构造函数注入创建依赖项。
问题 在处理现有代码时,使用 NavigationPage 作为根时,一个小的更改会导致 NullReference 异常。这是一个工作示例应用程序的示例
https://github.com/hnabbasi/xamarin/tree/master/XFPrism/XFPrism
我正在使用 NavigationPage 并推送 ContentPage。然后我推送另一个 ContentPage,然后通过按钮单击和通信显示一个模态页面。我通过 NavigationParameters 将参数发送回第二个内容页面。
要打破它,只需尝试将 IsayHello 服务与 IPageDialogService 交换。我不确定发生了什么事情会破坏它。
提前致谢:)
【问题讨论】:
-
好的。发现重命名的问题。我发现当视图不直接位于“视图”命名空间下(即 Views.Pages 或 Views.Dashboard)时,它们不会加载。将它们直接移动到“视图”下没有错误。此外,我必须删除 XAML 中的显式 AutowireViewModel = "True" 声明,因为它已经由 ViewModelLocator 处理。然后,ViewModelLocator 能够很好地定位和绑定我的视图。从构造函数调用注入服务的方法时仍然不确定 NullReference。
标签: c# xamarin.forms prism