广告
返回顶部
首页 > 资讯 > 精选 >Xamarin XAML语言中如何实现控件模板的模板绑定
  • 365
分享到

Xamarin XAML语言中如何实现控件模板的模板绑定

2023-06-04 12:06:57 365人浏览 独家记忆
摘要

这篇文章主要介绍Xamarin XAML语言中如何实现控件模板的模板绑定,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 控件模板的模板绑定为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑

这篇文章主要介绍Xamarin XAML语言中如何实现控件模板的模板绑定,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

 控件模板的模板绑定

为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑定功能。模板绑定允许控件模板中的控件将数据绑定到公共属性上。这时需要使用TemplateBinding。它可以将控件模板中的控件的属性绑定到拥有控件模板的目标视图的父级上的可绑定属性上。

注意:(1)TemplateBinding类似于现有的Binding,不同之处在于TemplateBinding的源总是自动设置为拥有控件模板的目标视图的父级。(2)不支持在控件模板之外使用TemplateBinding。

【示例14-5:ControlTemplateDemo】以下将以项目ControlTemplateDemo为基础,在控件模板中实现模板绑定功能。具体的操作步骤如下:

(1)打开MainPage.xaml文件,编写代码,实现可绑定属性的定义。代码如下:

  • namespace ControlTemplateDemo

  • {

  •     public partial class MainPage : ContentPage

  •     {

  •         bool originalTemplate = true;

  •         ControlTemplate tealTemplate;

  •         ControlTemplate aquaTemplate;

  •         public static readonly BindableProperty HeaderTextProperty = BindableProperty.Create("HeaderText",

  •                                                                            typeof(string),

  •                                                                            typeof(MainPage),

  •                                                                            "Knowledge is power.");

  •         public static readonly BindableProperty FooterTextProperty = BindableProperty.Create("FooterText",

  •                                                                           typeof(string),

  •                                                                           typeof(MainPage),

  •                                                                           "Xamarin.Froms XAML");

  •         public MainPage()

  •         {

  •             InitializeComponent();

  • ……                        //此处省略了对tealTemplate和aquaTemplate对象的实例化

  •         }

  •         public string HeaderText

  •         {

  •             get

  •             {

  •                 return (string)GetValue(HeaderTextProperty);

  •             }

  •         }

  •         public string FooterText

  •         {

  •             get

  •             {

  •                 return (string)GetValue(FooterTextProperty);

  •             }

  •         }

  • ……                                //此处省略了对OnButtonClicked方法的实现

  •     }

  • }

(2)打开App.xaml文件,编写代码,在第一个构建的ControlTemplate中实现模板绑定功能。代码如下:

  • <ControlTemplate x:Key="TealTemplate">

  •   <Grid>

  •     <Grid.RowDefinitions>

  •       <RowDefinition Height="0.1*" />

  •       <RowDefinition Height="0.8*" />

  •       <RowDefinition Height="0.1*" />

  •     </Grid.RowDefinitions>

  •     <Grid.ColumnDefinitions>

  •       <ColumnDefinition Width="0.05*" />

  •       <ColumnDefinition Width="0.95*" />

  •     </Grid.ColumnDefinitions>

  •     <BoxView Grid.ColumnSpan="2"

  •              Color="Teal" />

  •     <Label Grid.Column="1"

  •            Text="{TemplateBinding Parent.HeaderText}"

  •            TextColor="White"

  •            FontSize="18"

  •            VerticalOptions="Center" />

  •     <ContentPresenter Grid.Row="1"

  •                       Grid.ColumnSpan="2" />

  •     <BoxView Grid.Row="2"

  •              Grid.ColumnSpan="2"

  •              Color="Teal" />

  •     <Label Grid.Row="2"

  •            Grid.Column="1"

  •            Text="{TemplateBinding Parent.FooterText}"

  •            TextColor="White"

  •            FontSize="18"

  •            VerticalOptions="Center" />

  •   </Grid>

  • </ControlTemplate>

在此代码中,我们将两个Label控件的Text属性实现了模板绑定功能,在上文中我们提到了属性使用模板绑定将其绑定到拥有ControlTemplate的目标视图的父级上的可绑定属性上。但是,在我们的代码中,模板绑定绑定到Parent.HeaderText和Parent.FooterText上,而不是HeaderText和FooterText上。这是因为在此代码中,可绑定属性是在目标视图的祖父级上定义的,而不是父级。

注意:模板绑定的源始终自动设置为拥有控件模板的目标视图的父级,在此项目中是ContentView实例。模板绑定使用Parent属性返回ContentView实例的父元素,这是ContentPage实例。

以上是“Xamarin XAML语言中如何实现控件模板的模板绑定”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Xamarin XAML语言中如何实现控件模板的模板绑定

本文链接: https://www.lsjlt.com/news/237880.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Xamarin XAML语言中如何实现控件模板的模板绑定
    这篇文章主要介绍Xamarin XAML语言中如何实现控件模板的模板绑定,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 控件模板的模板绑定为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑...
    99+
    2023-06-04
  • Xamarin XAML语言如何构建ControlTemplate控件模板
    小编给大家分享一下Xamarin XAML语言如何构建ControlTemplate控件模板,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!控件模板ControlTemplateControlTemplate是从Xamari...
    99+
    2023-06-04
  • Xamarin XAML语言中怎么构建ControlTemplate控件模板
    小编给大家分享一下Xamarin XAML语言中怎么构建ControlTemplate控件模板,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Xamarin XAM...
    99+
    2023-06-04
  • Xamarin XAML语言中如何实现模板视图TemplatedView
    这篇文章给大家分享的是有关Xamarin XAML语言中如何实现模板视图TemplatedView的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。模板视图TemplatedView与模板页面相对的是Template...
    99+
    2023-06-04
  • Xamarin XAML语言中如何在页面级别中构建ControlTemplate控件模板
    小编给大家分享一下Xamarin XAML语言中如何在页面级别中构建ControlTemplate控件模板,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在页面级别...
    99+
    2023-06-04
  • Xamarin XAML语言中如何构建ControlTemplate控件模板实现主题的切换功能
    小编给大家分享一下Xamarin XAML语言中如何构建ControlTemplate控件模板实现主题的切换功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!(3...
    99+
    2023-06-04
  • Xamarin XAML中如何将构建的控件模板应用于中TemplatedView
    这篇文章主要介绍了Xamarin XAML中如何将构建的控件模板应用于中TemplatedView,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。(2)打开MainPage.x...
    99+
    2023-06-04
  • Vue模板语法中如何实现数据绑定
    这篇文章主要为大家展示了“Vue模板语法中如何实现数据绑定”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue模板语法中如何实现数据绑定”这篇文章吧。1.单项数...
    99+
    2022-10-19
  • Django模板中如何实现常用的过滤器
    这篇文章主要介绍Django模板中如何实现常用的过滤器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!模版常用过滤器在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。...
    99+
    2023-06-15
  • html如何实现宽度固定并布局居中模板框架
    小编给大家分享一下html如何实现宽度固定并布局居中模板框架,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 固定宽度 并居中模...
    99+
    2022-10-19
  • 如何在C++项目中实现模板中的非类型参数
    这篇文章给大家介绍如何在C++项目中实现模板中的非类型参数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。非类型模板参看,顾名思义,模板参数不限定于类型,普通值也可作为模板参数。在基于类型的模板中,模板实例化时所依赖的是...
    99+
    2023-06-06
  • dedecsm模板中首页如何实现分页的三种方法比较分析
    织梦dedecsm模板中首页如何实现分页的三种方法有时在做织梦模板的时候需要实现首页分页效果,但是织梦本身首页是不带分页功能的,那如何实现织梦首页分页呢?有3种办法可以实现:一、用arclist标签+Ajax实现织梦首页...
    99+
    2022-06-12
    首页 分页
  • 编程语言中如何利用构造方法实现模块的解耦
    编程语言中如何利用构造方法实现模块的解耦,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。解耦,不仅只是对程序的扩展性而言,它可能还是你使用你的程序从一个层面向另一个层面提高的基础...
    99+
    2023-06-17
  • 自然语言处理中的算法优化:如何实现词向量模型?
    自然语言处理(Natural Language Processing, NLP)是人工智能领域的一个重要分支。在NLP中,词向量模型是实现文本分类、聚类、情感分析等任务的基础。而优化词向量模型的算法,是提高NLP算法效果的关键之一。本文将介...
    99+
    2023-08-27
    编程算法 自然语言处理 linux
  • Go语言中的文件查找:如何使用Path索引文件实现快速定位?
    在现代计算机中,文件系统是操作系统中的一个重要组成部分。在文件系统中,文件的查找是一项非常常见的操作。Go语言中提供了一种高效的方式来索引文件——Path索引。本文将介绍如何使用Path索引文件实现快速定位。 什么是Path索引? Pat...
    99+
    2023-10-05
    path 索引 文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作