c# – 让ControlTemplate中的AutowireViewModel工作

在我的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.

这看起来很奇怪,因为如果这样可行,为什么这不是默认行为呢?

点赞