1.把控件作为Binding的源

例子:拖动Slider,输入框中的值也会跟着改变,或在输入框中输入数值,滑动条也会自动移动

<Window x:Class="把控件作为Binding源.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<TextBox x:Name="textBox1" Text="{Binding Path=Value,ElementName=slider1,Mode=Default,UpdateSourceTrigger=PropertyChanged}" Margin="5" BorderBrush="Black"></TextBox>
<Slider x:Name="slider1" Maximum="100" Minimum="0" Margin="5"></Slider>
</StackPanel>
</Grid>
</Window>

2.控制Binding的方向

设置属性:Mode

3.更新时操作

设置属性:UpdateSourceTrigger

4.Path路径

1)前台与后台的代码比较:

前台:

<Window x:Class="Path路径.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="279.8" Width="525" Loaded="Window_Loaded">
<Grid>
<StackPanel>
<TextBox x:Name="textBox1" Text="{Binding Path=Value,ElementName=slider1,Mode=Default,UpdateSourceTrigger=PropertyChanged}" BorderBrush="Black" Margin="4"></TextBox>
<TextBox x:Name="textbox2" BorderBrush="Black" Margin="4" Text="1"></TextBox>
<Slider x:Name="slider1" Maximum="100" Minimum="0"></Slider> <TextBox x:Name="textBox3" Margin="5" BorderBrush="Red"></TextBox>
<TextBox x:Name="textBox4" Text="{Binding Path=Text.Length,ElementName=textBox3,Mode=OneWay}" Margin="5" BorderBrush="Red"></TextBox>
<TextBox x:Name="textBox6" Margin="5" BorderBrush="Red"></TextBox> <TextBox x:Name="textBox7" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox8" Text="{Binding Path=Text[3],ElementName=textBox7,Mode=OneWay}" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox9" Margin="5" BorderBrush="Blue"></TextBox>
</StackPanel>
</Grid>
</Window>

后台:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes; namespace Path路径
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
Binding binding = new Binding() { Path = new PropertyPath("Value"), Source = this.slider1 };
this.textbox2.SetBinding(TextBox.TextProperty, binding); this.textBox6.SetBinding(TextBox.TextProperty, new Binding("Text.Length") { Source = this.textBox3, Mode = BindingMode.OneWay }); this.textBox9.SetBinding(TextBox.TextProperty, new Binding("Text[3]") { Source = this.textBox7, Mode = BindingMode.OneWay });
}
}
}

截图:

2)斜线语法

第一个例子:

XAML:

<Window x:Class="Path路径.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="124.176" Width="300" Loaded="Window_Loaded">
<Grid>
<StackPanel>
<TextBox x:Name="textBox1" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox2" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox3" Margin="5" BorderBrush="Blue"></TextBox>
</StackPanel>
</Grid>
</Window>

C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes; namespace Path路径
{
/// <summary>
/// 当使用一个集合或者DataView作为Binding的源时,如果想把它的默认元素当作Path使用,需要以下的语法
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<string> stringList = new List<string>() { "Tomi", "Tim", "Blogog" };
this.textBox1.SetBinding(TextBox.TextProperty, new Binding("/") { Source = stringList });
this.textBox2.SetBinding(TextBox.TextProperty, new Binding("/Length") { Source = stringList, Mode = BindingMode.OneWay });
this.textBox3.SetBinding(TextBox.TextProperty, new Binding("/[2]") { Source = stringList, Mode = BindingMode.OneWay });
}
}
}

截图:

第二个例子:

XAML:

<Window x:Class="Path路径.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="121.978" Width="300" Loaded="Window_Loaded">
<Grid>
<StackPanel>
<TextBox x:Name="textBox1" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox2" Margin="5" BorderBrush="Blue"></TextBox>
<TextBox x:Name="textBox3" Margin="5" BorderBrush="Blue"></TextBox>
</StackPanel>
</Grid>
</Window>

C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes; namespace Path路径
{
/// <summary>
/// 如果集合元素的属性仍然是一个集合时,使用多斜线语法
/// </summary>
public partial class Window2 : Window
{
public Window2()
{
InitializeComponent();
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<Country> countryList = new List<Country>(){
new Country(){
Name = "中国",
ProvinceList = new List<Province>(){
new Province(){
Name = "四川",
CityList = new List<City>(){
new City(){
Name = "成都"
}
}
}
}
}
}; this.textBox1.SetBinding(TextBox.TextProperty, new Binding("/Name") { Source = countryList });
this.textBox2.SetBinding(TextBox.TextProperty, new Binding("/ProvinceList/Name") { Source = countryList });
this.textBox3.SetBinding(TextBox.TextProperty, new Binding("ProvinceList/CityList/Name") { Source = countryList });
}
}
}

截图:

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

  1. 深入浅出-Binding的源与路径

    1.把控件作为Binding源与Binding标记扩展<TextBox x:Name="textBox1" Text="{Binding Path=Value, E ...

  2. WPF 基础 - Binding 的源与路径

    1. 源与路径 把控件作为 binding 源与 binding 标记拓展: 控制 Binding 的方向及数据更新: Binding 的路径 Path: 没有路径的 Binding: 为 Bindi ...

  3. 浅谈 qmake 之 shadow build(将源码路径和构建路径分开,一套源码要分别用msvc2008、msvc2008、mingw分别编译又不互相干扰)

    shadow build shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁. 这不是qmake ...

  4. 相辅相成的求最单源短路径算法:(SPFA& dijkstra)

    引用一位老oier的话: 一道题如果边权没有负数,那么一定是在卡SPFA.这时候就用到了堆优化的Dijkstra; 写在前面: 多打代码! 最好都掌握,灵活变通 SPFA: 主要用于稀疏图和有负权边的 ...

  5. java之源码路径及api

    jav源码地址:D:\Program Files\jdk1.7\src.zip class类地址:D:\Program Files\jdk1.7\jre\lib\rt.jar 在线api底地址:htt ...

  6. 浅谈 qmake 之 shadow build(就是将源码路径和构建路径分开)

    shadow build shadow build 是什么东西?就是将源码路径和构建路径分开(也就是生成的makefile文件和其他产物都不放到源码路径),以此来保证源码路径的清洁. 这不是qmake ...

  7. [Android] 更改关联的源码路径

    右击选中工程 → Java Build Path → Libraries → Android 4.1.2 → 点开android.jar → 选中Source attachment → Edit,即可 ...

  8. WPF之Binding深入探讨

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

  9. WPF的Binding功能解析

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

随机推荐

  1. html5 图片热点area,map的用法

    今天看了一个html5在图片上面创建热点的标签,所谓图片热点就是给你一张图片然后你可以设置点击图片不同的位置进入不同的链接!如果下面是一张图片的话,里面在长方形.圆形.三角形区域都可以进入其他网页! ...

  2. Sublime Text使用教程【转】

    本文转载自:http://lucida.me/blog/sublime-text-complete-guide/ 摘要(Abstract) 本文系统全面的介绍了 Sublime Text,旨在成为最优 ...

  3. iOS 学习笔记 十 (2015.04.03)xcode第三方插件

    1.xcode第三方插件,存放路径:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins

  4. OSAL

    1. CC254x的软件基于OSAL架构 2. OSAL并非一个真的操作系统, 而只是让软件设立一个事件的执行方法(setup excution of events) 3. 每一个子系统都在OSAL的 ...

  5. React笔记_(4)_react语法3

    生命周期 很多语言中都讲了关于生命周期.这可是决定生命的周始,有没有存在感的关键啊. 生命周期,有生有死,有始有终,因果轮回,循环往复.(说多了) react中,主要说明的是 一个组件的生命周期.简单 ...

  6. 浅析Java的HashCode,以及equals

    1.JDK规定,equals相等的两个对象hashCode也必须相等,这两个方法都是从Object上面继承而来的,通过观察JDK源码可以发现Object的equals方法是对2个对象的地址(逻辑地址, ...

  7. Jython安装步骤

    1.下载安装包 2.执行安装 Java -jar [此处是下载的jython jar包名],或者双击jar包夜可以 3.配置环境变量 新增JYTHON_THOME的环境变量,并设置为安装路径. 配置c ...

  8. php中替换函数主要用的几个函数strtr(),str_repalce()。

    php中替换函数主要有strtr(),str_repalce()这两个函数,今天介绍下他们的区别和用法, 先来看看这个php字符串替换函数 strtr()的两种用法: strtr(string,fro ...

  9. 新增PHP经典笔记

    [设置编码] header("Content-type: text/html; charset=utf-8"); 1. parse_url - 解析 URL,返回其组成部分 $ua ...

  10. 圆形imageview

    把java代码放到src中,把attrs文件放入valuse中,重新导包,即可照着普通的imageview一样使用. 注意:设置时使用 src 不要使用background否则图片还是方的. circ ...