Xamarin为标题形成ControlTemplate,为页脚和绑定形成另一个

时间:2017-12-30 14:25:04

标签: xamarin binding xamarin.forms controltemplate controltemplates

我正在制作一个在每个屏幕上都有相同标题的应用程序,所以我为应用程序的那一部分创建了一个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>

我需要在页脚中绑定某些类的属性。怎么做?它可以实现吗?

1 个答案:

答案 0 :(得分:0)

我使用ControlTemplate在每个页面上显示ActivityIndi​​cator。

对于指标的属性IsVisible,我将其与属性IsBusy绑定 页。

这就是我在ControlTemplate的XAML中绑定它的方式:

IsVisible="{TemplateBinding BindingContext.IsBusy}"

如果我想更改每页上指示符的颜色,我可以为页面定义BusyColor属性并绑定它:

Color="{TemplateBinding BindingContext.BusyColor}"