Xamarin Prism BindingContext to ViewModel for Intellisense 数据建议
Xamarin Prism BindingContext to ViewModel for Intellisense data suggest
我来自 WPF,在其中指定 DataContext(Xamarin 的 BindingCntext)时,智能感知会向我显示我的属性和方法。
在 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,不会包含在我们的 Debug/Release 构建中。然后我们可以在 DesignTime 中添加 BindingContext。请注意,从技术上讲,它会在 ViewModel 上显示错误,因为它没有无参数构造函数。
你有两个选择。您可以忽略它,因为它是设计时间而不是实际问题。它仍将继续为您提供 ViewModel 中属性的智能感知。或者你可以只添加一个无参数的构造函数。一般来说,这应该不是问题,除非容器无法解析依赖项,它可能会尝试使用默认构造函数来代替,这会在运行时导致各种问题。目前,在设计时构建中没有实际的常量允许您 #if DESIGN_TIME
无参数构造函数,这就是为什么我的建议是忽略有关 ViewModel 的设计时警告。
我来自 WPF,在其中指定 DataContext(Xamarin 的 BindingCntext)时,智能感知会向我显示我的属性和方法。 在 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,不会包含在我们的 Debug/Release 构建中。然后我们可以在 DesignTime 中添加 BindingContext。请注意,从技术上讲,它会在 ViewModel 上显示错误,因为它没有无参数构造函数。
你有两个选择。您可以忽略它,因为它是设计时间而不是实际问题。它仍将继续为您提供 ViewModel 中属性的智能感知。或者你可以只添加一个无参数的构造函数。一般来说,这应该不是问题,除非容器无法解析依赖项,它可能会尝试使用默认构造函数来代替,这会在运行时导致各种问题。目前,在设计时构建中没有实际的常量允许您 #if DESIGN_TIME
无参数构造函数,这就是为什么我的建议是忽略有关 ViewModel 的设计时警告。