我的编程空间,编程开发者的网络收藏夹
学习永远不晚

WPF绑定Binding用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

WPF绑定Binding用法

什么是绑定(Binding)?

在winform中, 我们常常会用到各种类型的赋值, 例如:

  • button1.Text="Hello";
  • label.Text="Hello";
  • ...

类似这种赋值操作, 我们之所以不称之为绑定, 主要原因是因为他们大多数操作都是一次性的, 无论是数据还是按钮本身发生变化,对两者而言都是不可见的。

而绑定的概念则侧重于: 两者的关联,协议与两者之间的影响。

首先, 从一个简单的例子来理解什么是绑定。

创建一个滑块控件, 并且希望在滑动的过程中, 把值更新到另外一个静态文本上。代码如下:

在winform中, 我们常规的做法会给滑块创建一个值改变事件,同时将滑块的值赋值给文本。

接下来, 我只需要在静态文本中添加一小段绑定的声明,即可完整原本很复杂的操作:

Text={Binding ElementName=slider,Path=Value}

  • {Binding }: Binding的声明语法, 一对尖括号,开头声明以Binding 开始。
  • ElementName= : 该声明意为, 设置元素的名称
  • Path: 设置关联元素的位置,上例中设置为元素的value属性。

那么该如何理解整句话的意义, 翻译: 静态文本TextBlock的Text属性将通过绑定的方式关联到元素名'slider'的value属性上。

效果图所示:

可以看到,在滑块不断的滑动过程中, TextBlock也在不断的发生变化, 说明TextBlock已经得到了滑动滑动过程中的值变化, 这种关联, 我们称之为绑定, 在WPF当中, 绑定又分很多种, 而上面这种则是通过元素绑定的方式。

理解了基础的绑定之后,然后就是理解绑定的模式。

绑定的模式就类似我们商业中的合作, 是一次性回报还是持续获益, 是否可以单方面终止, 是否具有投票权等, 在WPF中绑定的模式又分为五种:

  • OneWay(单向绑定) : 当源属性发生变化更新目标属性, 类似上面的例子中, 滑动变化更新文本的数据。示例:

效果:

  • TwoWay(双向绑定) : 当源属性发生变化更新目标属性, 目标属性发生变化也更新源属性。

与单向绑定的区别可以理解为, 前者只能打你,被打者不能还手, 双向绑定的意思则是: 你敢打我一巴掌,我也能回你一巴掌。示例:

效果:

  • OneTime(单次模式) : 根据第一次源属性设置目标属性, 在此之后所有改变都无效。

如第一次绑定了数据源为0, 那么无论后面如何改变 2、3、4... 都无法更新到目标属性上。示例:

效果:

  • OneWayToSource : 和OneWay类型, 只不过整个过程倒置。示例:

效果:

  • Default : 既可以是双向,也可以是单项, 除非明确表明某种模式, 否则采用该默认绑定

绑定到非元素上

上面的代码中,使用的绑定方式是根据元素的方式: ElementName=xxx, 如需绑定到一个非元素的对象, 则有一下几属性:

  • Source : 指向一个数据源, 示例, TextBox使用绑定的方式用Source指向一个静态资源ABC:

  • RelativeSource : 使用一个名为RelativeSource的对象来根据不同的模式查找源对象,

示例, 使用RelativeSource的FindAncestor模式, 查找父元素为StackPanel的Width值

  • DataContext: 从当前的元素树向上查找到第一个非空的DataContext属性为源对象。

示例, 该示例用后台代码创建一个只包含Name的类, Test, 通过绑定窗口的DataContext上下文:

后台代码绑定简单文本与列表

创建一个PageModel类, 定一个ClassName为班级名称, 和一个Students学生列表, 后台代码:

窗口代码

效果预览

关于以上, 基本介绍了WPF元素绑定的方式与几种模式, 接下讲的是, WPF中的事件如果通过绑定的方式和UI分离。尽管WPF中仍然可以兼容winform中的事件模型, 而binding也是MVVM架构中的重要组成部分(下节会介绍)。

到此这篇关于WPF绑定Binding用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

WPF绑定Binding用法

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

下载Word文档

猜你喜欢

WPF 非元素类绑定Binding之 RelativeSource 属性

WPF中的RelativeSource属性用于非元素类的绑定,比如在样式、模板或数据模板中使用。它允许您从绑定目标的父级或祖先级元素中查找属性。相对源属性有以下几种常用的设置:1. AncestorType:指定要查找的祖先元素的类型。例如
2023-09-28

Android Data Binding数据绑定详解

去年谷歌 I/O大会上介绍了一个非常厉害的新框架DataBinding, 数据绑定框架给我们带来了很大的方便,以前我们可能需要在每个Activity里写很多的findViewById,不仅麻烦,还增加了代码的耦合性,如果我们使用DataBi
2022-06-06

wpf双向绑定的方法是什么

WPF(Windows Presentation Foundation)中的双向绑定是一种机制,可以在界面控件和数据对象之间实现双向的数据同步。下面是实现WPF双向绑定的方法:1. 使用绑定表达式:可以通过在XAML中的控件属性中使用绑定表
2023-08-08

GridView绑定数据的实现-wpf数据绑定

在WPF中,可以通过以下步骤实现GridView的数据绑定:1. 创建一个数据模型类,用于表示你要绑定的数据对象。该类应该实现INotifyPropertyChanged接口,以便在数据发生变化时通知界面更新。```csharppublic
2023-09-22

WPF数据驱动修改绑定的方法

本篇内容介绍了“WPF数据驱动修改绑定的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、简介在XAML文件中我们创建了一个TextBl
2023-06-30

WPF TreeView绑定数据的方法是什么

WPF TreeView 绑定数据的方法有多种,可以使用以下几种方法:使用 ItemsSource 属性:可以将一个集合作为 TreeView 的 ItemsSource 属性的值进行绑定。例如,可以将一个 ObservableCollec
2023-10-23

WPF怎么绑定多条曲线

在WPF中,可以使用Path对象来绑定多条曲线。具体的步骤如下:1. 创建一个Path对象,并将其添加到XAML文件中的Canvas或Grid等容器中。```xml```2. 在Path对象的Data属性中,使用GeometryGroup对
2023-08-20

WPF双重绑定怎么实现

WPF双重绑定可以通过使用TwoWay绑定模式和使用UpdateSourceTrigger属性来实现。首先,确保你的绑定属性使用TwoWay模式。这可以通过在绑定表达式中指定Mode=TwoWay来实现,例如:然后,你可以使用Update
2023-10-23

wpf双向绑定怎么实现

WPF双向绑定可以通过以下步骤实现:1. 首先,在XAML中,将需要进行双向绑定的控件的`Mode`属性设置为`TwoWay`,例如:```xaml```2. 确保数据对象实现了`INotifyPropertyChanged`接口,该接口提
2023-09-06

wpf怎么绑定对象的属性

在WPF中,可以使用数据绑定来绑定对象的属性。首先,确保你的对象实现了INotifyPropertyChanged接口。这个接口定义了一个PropertyChanged事件,可以通知绑定的UI控件属性的值已经发生了变化。在XAML中,你
2023-10-24

wpf自定义控件绑定结构体的方法是什么

要在WPF中绑定结构体,可以使用以下方法:1. 创建一个继承自`DependencyObject`的自定义控件类,该类包含一个依赖属性(Dependency Property)来存储结构体的值。例如:```csharppublic clas
2023-09-06

WPF 查看绑定错误——Snoop 的基本使用

关于 可以通过 Snoop 查看 WPF 程序的 Visual Tree,更多介绍请看 snoopwpf 快速开始 一、下载 snoopwpf.msi 安装后打开,选择自己的程序,点击 snoop(望远镜) 二、筛选 点击左侧下拉列表,选
2023-08-30

wpf数据绑定的方式有哪些

WPF数据绑定的方式有四种:1. 单向绑定(OneWay):数据只能从数据源传递到目标元素,不能从目标元素传递回数据源。2. 双向绑定(TwoWay):数据可以从数据源传递到目标元素,也可以从目标元素传递回数据源。3. 单向到源绑定(One
2023-08-09

WPF使用WPFVisifire前台代码绑定多条曲线

在WPF中使用WPFVisifire绑定多条曲线,可以通过在前台代码中创建多个`DataSeries`对象,然后将它们绑定到`Chart`控件的`DataSeries`属性上。首先,在XAML中添加`Chart`控件和用于绑定的`DataS
2023-08-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录