Из моей укладки ControlTemplate в App.xaml я пытаюсь получить логическое свойство из используемой 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, но сначала я хочу показать только сам StackLayout с помощьюустановив фоновый цвет в Aqua):
<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>
Благодаря моим исследованиям это должно сработать, так как я получаю сообщение «Не разрешить символ« Родитель »» Без «Родителя» я всегда получаю истину в результате.
Я пробовал, например:
- установить дополнительно BindingContext
- IsEnabled = "{TemplateBinding BindingContext.IsLoading}"
- IsEnabled = "{TemplateBinding IsLoading} "
- IsEnabled =" {Binding IsLoading} "