如何在XAML页眉中设置页面范围的BindingContext
在XAML页面的页眉(定义了名称空间和x:class)中,设置该页面的bindingContext的正确语法是什么 我知道这是可以设定的如何在XAML页眉中设置页面范围的BindingContext,xaml,xamarin,data-binding,xamarin.forms,Xaml,Xamarin,Data Binding,Xamarin.forms,在XAML页面的页眉(定义了名称空间和x:class)中,设置该页面的bindingContext的正确语法是什么 我知道这是可以设定的 <ContentView.ContextBinding> <vm:RedViewModel/> </ContentView.ContextBinding> 但是像下面这样的东西看起来会更整洁 <?xml version="1.0" encoding="UTF-8" ?> <ContentView x:
<ContentView.ContextBinding>
<vm:RedViewModel/>
</ContentView.ContextBinding>
但是像下面这样的东西看起来会更整洁
<?xml version="1.0" encoding="UTF-8" ?>
<ContentView x:Class="MVVMFramework.VVMs.Red.RedView"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:vm="clr-namespace:MVVMFramework.VVMs.Red"
BackgroundColor="Red"
BindingContext="{Binding Source = {vm:RedViewModel}}"> //Something like this
//像这样的
过去,第二种方法会导致创建两次ViewModel
,如果不确定它是否存在,您可以很容易地检查它
除此之外,没有一个银弹解决方案可以适用于所有情况。如果您必须将一些数据传递给ViewModel
constructor怎么办?对于XAML,这将是一个棘手的问题。最有可能的是,在适当的位置安装一个IOC容器,将这些属性注入到ViewModel
,以便在代码中而不是在XAML中实现
我会说,评估你自己什么是适合你的解决方案,并坚持它,所以它将是一致的
附言:我并不是说你不应该在XAML中使用它,如果它在你的具体情况下有意义的话就使用它