当前位置: 首页 > news >正文

【avalonia教程】10数据绑定语法格式

关于控件属性,绑定DataContext中属性的语法,我们目前已经见过了:

<TextBlock Text="{Binding PageDesc}"></TextBlock>

接下来,详细讲解下数据绑定语法的细节,官方给定的语法格式如下:

<SomeControl SomeProperty="{Binding Path, Mode=ModeValue, StringFormat=Pattern}" />

我们先来看第一个参数Path,实际上方的Binding PageDesc,是少了一个Path关键字的,完整的写法如下:

<TextBlock Name="TextBlockDemo" Text="{Binding Path=PageDesc}">

如果是DataContext属性的属性,也可以连写,举个例子,我们新建一个Student类,给Student类设置一个Name属性,并将Student类定义为MainWindowViewModel的一个属性,代码如下:

public class Student
{public string? Name { get; set; }
}public class MainWindowViewModel
{public Student? StudentInfo { get; set; }
}

同时将在初始化MainWindow对象时, 添加数据上下文,代码如下:

            desktop.MainWindow = new MainWindow(){// 给 MainWindow 添加数据上下文DataContext = new MainWindowViewModel(){StudentInfo = new Student(){Name = "jack"}}};

将MainWindowViewModel对象的StudutInfo属性的Name属性与TextBlock的Text属性进行绑定,代码如下:

<TextBlock Name="TextBlockDemo" Text="{Binding StudentInfo.Name}"></TextBlock>

如果想将TextBlock的Text属性,绑定到TextBlock自身控件找到的数据上下文(可能是自身的,也可能是父控件的),可以用 . 或者省略,代码如下:

<TextBlock Text="{Binding}"/>
<TextBlock Text="{Binding .}"/>

接下来介绍数据绑定模式。什么意思呢?就是影响方向。比如上例中,MainWindowViewModel的PageDesc属性,和TextBlock的Text属性绑定,那如果在程序运行的过程中,PageDesc属性更改,是否会影响Text属性同步更改?反过来,Text属性更改,是否会影响PageDesc属性更改呢?

这里我们直接给结论,如果数据上下文的属性更改,会直接影响到控件属性的更改,这种绑定模式就叫做OneWay;如果控件属性的更改,会影响到数据上下文的更改,这种模式叫做OneWayToSource,如果双方互相影响,这种模式就叫做TwoWay。一共有以下五种模式,大家先大概理解下这个思想,并且眼熟一下,等我们后续讲到mvvm相关内容时,会给大家详细的讲解这块内容。

http://www.dtcms.com/a/482529.html

相关文章:

  • 图像分类数据集难度怎么评?
  • 管理系统有哪些布局框架,比如左右,上下,F型号,T型等
  • 设计网站意味着什么如何用手机制作app
  • 网站跳出率 查询免费建立自己喜欢的
  • 纵向合并和横向合并工作表的思路
  • 图像锐化的魔法棒:深入浅出理解USM锐化算法
  • PHP网站开发都需要学什么做网站用什么电脑配置
  • Naive RAG
  • 做网站开源框架本土广告公司
  • MacOS 安装器安装,正在等待其他安装完成
  • 惠洋科技H5442L 100V高耐压LED恒流驱动芯片80V72V60V48V降压12V9V6V1.2Aic方案 PWM+模拟调光
  • 网站自建设需要买什么时候开始免费推广链接
  • ElasticSearch生产环境问题集锦
  • 深圳官网建站服务商网站建设空间申请
  • RAG系统向量化存储技术深度解析:双索引架构与批量处理实践
  • 复习总结最终版:计算机网络
  • wordpress导航站模版海南省建设注册中心网站
  • 成都建设路小学网站可以看的网站都有哪些
  • Unreal Engine 跨平台构建完全指南
  • 一个专门做恐怖片的网站安徽华建建设工程公司网站
  • selenium对每种前端控件的操作,python举例
  • php网站打开慢网站设计需要考虑的基本原则
  • oracle数据库 ZHS16GBK 数据库 VARCHAR2字段无法存储生僻字解决方案、如“䶮”生僻字、oracle utl_raw函数解释
  • Python - 100天从新手到大师:第五十五天使用缓存
  • K8S(八)—— Kubernetes 集群调度全面解析:从组件协作到实战(含亲和性、污点容忍与故障排查)
  • 基于MATLAB的遗传算法优化支持向量机实现
  • k8s(四)Kubernetes 集群调度
  • 如何从 iPhone 中导出视频
  • 关于网站开发的开题报告郑州制作平台网站
  • 吐鲁番做网站godaddy服务器做网站