我正在制作一个在每个屏幕上都有相同标题的应用程序,所以我为应用程序的那一部分创建了一个ControlTemplate,在其上放置了一些按钮并且可以正常工作。我很高兴。
三个屏幕具有几乎相同的页脚,只有不同的文字颜色和图像。我为页脚创建了另一个ControlTemplate,我想根据当前显示的页面操作绑定图像上的IsVisible属性,但我无法弄清楚如何操作。
我知道我需要编写一个转换器,我这样做了,这似乎并不复杂,但我无法找到一种方法来实际绑定这些属性中的值。
两个ControlTemplates都是在应用程序级别定义的。
这是我如何使用它们的一个例子,也许这是错误的:
<ContentView ControlTemplate="{StaticResource Header}">
<!--This is the actuall page content-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="9*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--Content of the page!-->
<Label Text="Welcome to Xamarin.Forms!"
VerticalOptions="Center"
HorizontalOptions="Center"
Grid.Row="0"/>
<!--Footer of the page!-->
<ContentView ControlTemplate="{StaticResource BuySellPayFooter}"
Grid.Row="1"/>
</Grid>
</ContentView>
我需要在页脚中绑定某些类的属性。怎么做?它可以实现吗?
答案 0 :(得分:0)
我使用ControlTemplate在每个页面上显示ActivityIndicator。
对于指标的属性IsVisible,我将其与属性IsBusy绑定 页。
这就是我在ControlTemplate的XAML中绑定它的方式:
IsVisible="{TemplateBinding BindingContext.IsBusy}"
如果我想更改每页上指示符的颜色,我可以为页面定义BusyColor属性并绑定它:
Color="{TemplateBinding BindingContext.BusyColor}"