WPF基础--绑定

Posted X·3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF基础--绑定相关的知识,希望对你有一定的参考价值。

WPF基础--绑定(一)

首先了解一下大致的意思:

  • WPF中的数据绑定:是在应用程序UI与业务逻辑之间建立连接的过程,其关键是System.Windows.Data.Binding对象,它会把两个对象(UI对象与UI对象之间,UI对象与.NET数据对象之间)按照指定的方式粘合在一起,并在他们之间建立一条通信通道,绑定一旦建立,接下来的应用生命周期中它可以自己独立完成所有的同步工作。
  • 数据绑定是绑定的一种重要类型,而绑定是MVVM架构中的重要组成部分,MVVM架构可以实现UI与业务逻辑分离。

一、什么是数据绑定?

WPF中的数据绑定:是在应用程序UI与业务逻辑之间建立连接的过程。扩展:

  • 为应用程序提供了一种表示数据和与数据交互的简单而又一致的方法。
  • 元素能够以公共语言运行时(CLR)对象和 XML 的形式绑定到各种数据源中的数据。
  • 数据绑定可能还意味着如果元素中数据的外部表现形式发生更改,则基础数据可以自动更新以反映更改。
  • 一种典型用法是将服务器或本地配置数据放置到窗体或其他UI控件中。在 WPF 中,元素的依赖项属性可以绑定到CLR对象(包括ADO.NET对象或与Web服务和Web属性相关联的对象)和XML数据XmlNode。

其基础模型为:

如上图所示,数据绑定实质上是绑定目标与绑定源之间的桥梁。

举个例子:

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

 

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

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

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

运行效果如下:

可以看到,在滑块不断的滑动过程中, TextBlock也在不断的发生变化, 说明TextBlock已经得到了滑动滑动过程中的值变化, 这种关联, 我们称之为绑定(绑定的概念侧重于: 两者的关联,协议与两者之间的影响), 在WPF当中, 绑定又分很多种, 而上面这种则是通过元素绑定的方式。

赋值和绑定的区别:

  • 在winform中, 我们常常会用到各种类型的赋值, 例如:
  • button1.Text="Hello";
  • label.Text="Hello";
  • ...类似这种赋值操作, 我们之所以不称之为绑定, 主要原因是因为他们大多数操作都是一次性的, 无论是数据还是按钮本身发生变化,对两者而言都是不可见的。
    • 而绑定的概念则侧重于: 两者的关联,协议与两者之间的影响。

以上是关于WPF基础--绑定的主要内容,如果未能解决你的问题,请参考以下文章

WPF ListView绑定基础数据类型集合

WPF绑定各种数据源之xml数据源

wpf MVVM框架基础

WPF:元素绑定

WPF绑定到集合

WPF学习第二十九章 元素绑定——将元素绑定到一起