在我放置在App.xaml中的ControlTemplate中,我尝试从使用的ViewModel中获取一个布尔属性,以使元素(在本例中为activityIndicator)在Content xaml中可见。
属性:
Private bool isLoading;
public bool IsLoading
{
get => this.isLoading;
set => this.SetProperty(ref this.isLoading, value);
}
内容页:
ControlTemplate="{StaticResource Template__Page_Scrollable}"
ControlTemplate(我将把ActivityIndicator集成到StackLayout中,但是首先我只想通过将backgroundcolour设置为Aqua来显示StackLayout本身):
<ControlTemplate x:Key="Template__Page_Scrollable">
<AbsoluteLayout x:Name="ActivityIndicator">
<ScrollView Style="{StaticResource Page_Scrollable__ScrollContainer}" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
<ContentPresenter AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All"/>
</ScrollView>
<StackLayout AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All"
IsEnabled="{TemplateBinding Parent.BindingContext.IsLoading}"
IsVisible="{TemplateBinding Parent.BindingContext.IsLoading}" BackgroundColor="Aqua">
</StackLayout>
</AbsoluteLayout>
</ControlTemplate>
由于我的研究,这应该可以通过以下方式工作:我收到消息“不解析符号“父母”” 没有“父母”,我总是会成真。
我尝试过例如:
答案 0 :(得分:0)
如果您确实在ControlTemplate
上设置了ContentPage
,例如:
<ContentPage
...
ControlTemplate="{StaticResource Template__Page_Scrollable}">
这是不正确的。 Parent
中的ControlTemplate
表示托管控件模板的视图的父视图。 ContentPage没有父视图。
相反,您需要在ContentPage的ContentView上设置控件模板,例如:
<ContentPage ...>
<ContentView ControlTemplate="{StaticResource Template__Page_Scrollable}" >
...
</ContentView>
</ContentPage>