Intellisense数据的Xamarin Prism BindingContext到ViewModel建议



我来自WPF,在那里指定DataContext(Xamarin的BindingCntext(intellisense向我展示了我的属性和方法。Xamarin的Prism有可能做到这一点吗?

Xamarin.Forms的工具还有很长的路要走。使用第三方解决方案,如MFractor,它只是工作。目前,它只适用于Mac版VS,但Windows版Visual Studio即将推出。

作为变通方案,您可能会使用一些设计时数据,如:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:AwesomeApp.ViewModels"
mc:Ignorable="d"
x:Class="AwesomeApp.Views.ViewA">
<d:ContentPage.BindingContext>
<vm:ViewAViewModel />
</d:ContentPage.BindingContext>

在这里,我们引入了一些用于设计、标记兼容性和ViewModels的XML名称空间。然后,我们指定设计时的任何内容都是可忽略的,这意味着它只用于IDE Intellisense,不会包含在我们的调试/发布构建中。然后,我们可以在DesignTime中添加BindingContext。请注意,从技术上讲,它将在ViewModel上显示一个错误,因为它没有无参数构造函数。

你有两个选择。您可以忽略它,因为这是设计时的问题,而不是实际问题。它仍将继续为您提供ViewModel中属性的Intellisense。或者您可以添加一个无参数构造函数。一般来说,这不应该是一个问题,除非容器无法解决依赖项,它可能会尝试使用默认构造函数,这会在运行时导致各种问题。目前,设计时构建中没有允许您#if DESIGN_TIME无参数构造函数的实际常量,这就是为什么我建议忽略有关ViewModel的设计时警告。

相关内容

  • 没有找到相关文章

最新更新