书上写着:Binding的源也就是数据的源头。Binding对于源的要求很简单-只要他是一个对象!并且通过属性(Property)公开自己的数据,它就可以作为Binding的源了。就像上一篇我写的那个Student类,它的实例对象就可以作为Binding的源,数据的内容是它的属性Name。

实际使用过程中,我们可以把控件自己或者控件的子级元素或者控件的自己的容器当成源,一个控件作为另一个控件的源,集合作为ItemsControl的数据源,XML、作为TreeView或者menu的数据源,把多个控件关联到一个数据制高点,甚至干脆不给Binding指定数据源,让它自己去找。

当我们遇到这样一种情况,通过一个滚动条来控制TextBox显示的值,当TextBox的值改变滚动条跳到对应的位置去,这个模型很常见,那么我们自己写一个这样的功能的时候会怎样做呢?方法当然很多,比如通过触发两个控件的Changed事件来操作等等,那我们既然在学习Binding,就是用它来解决这个问题。

滚动条Slider是用来控制显示的值,所以它的Value是一个Binding的源,TextBox的Text属性则是这个源的目标。

代码如下:

<Window x:Class="Wpf_test1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<StackPanel>
<TextBox x:Name="textbox1" Text="{Binding Path=Value, ElementName=Slider1}" BorderBrush="Black"></TextBox>
<Slider x:Name="Slider1" Maximum="" Minimum=""></Slider>
</StackPanel>
</Window>

Maximum和Minimum是指定Value的范围,注意TextBox的Text=“{Binding Path=Value, ElementName=Slider1}”和我们平常写的Text=“value”不同,它的意思是把Slider的Value值Binding给TextBox的Text去。

执行结果:

当我们在TextBox里面输入一个数字,如何让Slider跳到相应位置去呢?

很简单,在Binding之后加上 UpdateSourceTrigger=PropertyChanged,当源的目标发生改变,更新源数据!是不是很方便。

有人可能会这样写:

 <TextBox x:Name="textbox1" Text="{Binding Value, ElementName=Slider1, UpdateSourceTrigger=PropertyChanged}" BorderBrush="Black"></TextBox>

没有写Path也是对的,因为Binding构造器本身可以接受Path作为参数。

按照上一篇最后的方法,XAML这一句Binding在后台可以写成如下:

this.textbox1.SetBinding(TextBox.TextProperty,new Binding("Value"){ElementName="Slider1"})

说到这里,不得不说说Path=Value这句话,Binding源的对象可能有许多属性,而Path正是决定了Binding关心的是哪一个属性。实际上Path所对应的是一个叫做PropertyPath的类型,比如Text.Length、Text.[2]等。

当Binding的源是一个集合或者DataView的时候,如果我们把它的默认元素当成Path的话。。。可以使用多级/语法,自己去MSDN看吧~

Binding的源和路径的更多相关文章

  1. Binding的Path(路径)

    Binding的源可以是控件(一个控件是另一个控件的Source.控件把自己的容器作为Source),把集合作为ItemsControls的Source,把xml作为Tree或者Menu的Source ...

  2. 获得数据源和路径desc.catalogPath

    workspace:C:\Users\dell\Documents\ArcGIS\Default.gdb\ddf inPath:c:\users\dell\documents\arcgis\defau ...

  3. WPF之Binding深入探讨

    原文:http://blog.csdn.net/fwj380891124/article/details/8107646 1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在 ...

  4. WPF的Binding功能解析

    1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要.但算法在3层中的分布是不均匀的,对于一个3层结构的 ...

  5. WPF之Binding的使用

    引出: 在WPF中Binding可以比作数据的桥梁,桥梁的两端分别是Binding的源(Source)和目标(Target).一般情况下,Binding源是逻辑层对象,Binding目标是UI层的控件 ...

  6. WPF之Binding深入探讨--Darren

    1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要.但算法在3层中的分布是不均匀的,对于一个3层结构的 ...

  7. 深入浅出WPF之Binding的使用(一)

    在WPF中Binding可以比作数据的桥梁,桥梁的两端分别是Binding的源(Source)和目标(Target).一般情况下,Binding源是逻辑层对象,Binding目标是UI层的控件对象:这 ...

  8. binding(转)

    1,Data Binding在WPF中的地位 程序的本质是数据+算法.数据会在存储.逻辑和界面三层之间流通,所以站在数据的角度上来看,这三层都很重要.但算法在3层中的分布是不均匀的,对于一个3层结构的 ...

  9. WPF之Binding【转】

    WPF之Binding[转] 看到WPF如此之炫,也想用用,可是一点也不会呀. 从需求谈起吧: 首先可能要做一个很炫的界面.见MaterialDesignInXAMLToolKit. 那,最主要的呢, ...

随机推荐

  1. Jordan Lecture Note-6: The Solutions of Nonlinear Equation.

    The Solutions of Nonlinear Equation 本文主要介绍几种用于解非线性方程$f(x)=0$的一些方法. (1) Bisection Method. 算法: step 1: ...

  2. 10个android开源项目

    http://www.51testing.com/?uid-116228-action-viewspace-itemid-244285 1.Android团队提供的示例项目 如果不是从学习Androi ...

  3. mysql中的第三范式

    ※多表操作 (凡是多表,都要用到关联技术(把多表合并成一个新表): 左关联.右关联.内关联.还有一个外(全)关联,MySQL不支持,为考虑软件兼容,我们开发一般不用.) ※表与表之间的关系:1对1,1 ...

  4. ubuntu nexus 安装

    今天公司组织学习使用linux系统搭建nexus maven私服中央仓库,在公司使用centos搭建了一个,回家又用ubuntu搭建一个,主要是为了能熟悉整个流程,现将主要过程总结如下:(PS:楼主是 ...

  5. SQL的几道题目

    1.构造数据插入方案表t_project_finish表 a)将addtime更新为当前时间的前一天 首先想到的是addtime=addtime-1,然后就开始验证这个想法. 插入一行数据,包括主键和 ...

  6. h2database源码浅析:事务、两阶段提交

    Transaction Isolation Transaction isolation is provided for all data manipulation language (DML) sta ...

  7. Filezilla FTP Server 设置帐号主目录文件夹的方法和多个帐号共享一个文件夹的方法

    1.点击用户头像进入 2.共享文件夹 3.添加共享文件夹 4.设置一个主目录 5.右键主目录 如图6设置别名,别名问主目录路径+别名名称 如:主目录[d:\pro\home\] 别名[aliases1 ...

  8. SQL Server 2012 内存管理 (memory management) 改进

    SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化. 一.内存分配器的变化 SQL Server 2012以前的版本,比如SQL Server 2008 R2等, 有sing ...

  9. [转]Windows Shell 编程 第二章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987893】

    第二章Shell的结构  “Shell 编程”的大伞之下有大量的API函数和COM接口.这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程.函数和接口并不是两种提供相同功能 ...

  10. 方法 :PHP开发环境搭建(phpstorm + xampp+mongodb)

    phpstorm 安装下载       百度网盘资源 phpstorm 9.0.1(有序列号)   http://pan.baidu.com/s/1kTvX0jl xampp 安装下载         ...