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. FireDac 与数据库连接时字符集及对应的字段类型问题

    近日在一个过程调用时发生一个奇怪现象, 异常返回意思是说, 数据的长度是[6], 而字段定义的长度是[3].  分析后认为:  调用过程你不涉及到对返回数据集的字段手动定义问题, 出现这个问题应是两边 ...

  2. Android NDK 开发(三)--常见错误锦集合Log的使用【转】

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/41826511  Android NDK开发经常因某些因素会出现一些意想不到的错误, ...

  3. Failed to read auto-increment value from storage engine, Error Number: 1467

    重设auto_increment:ALTER TABLE tableName auto_increment=number

  4. 使用Jconsole监控weblogic的配置方法

    在项目中发现full gc非常频繁.达到了每分钟13次.我怀疑可能会有内存泄露.于是在晚上找了内存泄露的资料. 内存长期占用并导致系统不稳定一般有两种可能: 1. 对象被大量创建而且被缓存,在旧的对象 ...

  5. linkbutton datagrid showdialog 行效果

    protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) { ListItemType itemTy ...

  6. [BIM]案例

    以下是中建三局BIM小组的项目,用以参考: BIM协同设计与质量控制 现实建筑物实体都是以三维空间状态存在,若用三维设计表达更具有优势.如复杂管综设计,一般情况下,二维AutoCAD设计是在建筑.结构 ...

  7. office 2013 产品秘钥

    9RN4T-JPBQV-XQMC9-PM9FP-PGWP9 TKX7J-VDN26-Y2WKQ-7MG8R-X2CC9 N9M8X-QDKGK-W27Q6-2GQYT-TJC9K 4VNXV-F7PB ...

  8. JAVA基础知识之JVM-——通过反射查看类信息

    Class实例 当类被加载之后,JVM中就会生成一个Class实例,通过这个实例就可以访问JVM中的这个类.有三种方式可以获取Class对象 使用Class的静态方法forName(完整包名) 调用类 ...

  9. php四种基础算法:冒泡,选择,插入和快速排序法

    转自:http://www.php100.com/html/php/rumen/2013/1029/6333.html 许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣.作为一 ...

  10. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法

    IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrl ...