在我的Xamarin应用程序中,我使用PRISM,在我的页面上,我使用AutowireViewModel支持我的viewmodels.
我也使用ControlTemplates,因此我可以轻松改变外观和感觉.
<ContentView
ControlTemplate="{StaticResource LoginTemplate}">
</ContentView>
但问题是我不能让我的绑定工作在我的contentTempaltes上.
我使用TemplateBinding并尝试了BindigContext.
<Label Text="{TemplateBinding BindingContext.Text" FontSize="Large" HorizontalOptions="Center" Margin="0, 30, 0, 0" />
我也试过了父母.但没有约束力.
<Label Text="{TemplateBinding Parent.Text" FontSize="Large" HorizontalOptions="Center" Margin="0, 30, 0, 0" />
<Label Text="{TemplateBinding BindingContext.Parent.Text" FontSize="Large" HorizontalOptions="Center" Margin="0, 30, 0, 0" />
<Label Text="{Binding BindingContext.Text" FontSize="Large" HorizontalOptions="Center" Margin="0, 30, 0, 0" />
…
如果我创建一个只有一些属性的纯视图模型,我可以在我的page.xaml中应用BindingContext元素时绑定它.
但我希望Prism将我的AutowireViewModel设置为BindixContext …
但是怎么样?
我已经尝试了BindixContext =“{TemplateBing …”},但没有任何进展.
最好的祝福,
托比亚斯
最佳答案 当我们addBindingContext =“{TemplateBinding Parent.BindingContext}”时
在out模板的根元素上我们可以使用普通的Binding.
因此,似乎不会从父级自动设置BindingContext.
我们的模板视图中Parent和BindingContext为null.
这看起来很奇怪,因为如果这样可行,为什么这不是默认行为呢?