Introduction

This is an article on WPF Binding Cheat Sheet. Some of the Binding won't work for Silverlight 3.

Basic Binding

{Binding} Bind to current DataContext.
{Binding Name} Bind to the "Name" proeprty of the current DataContext.
{Bindind Name.Length} Bind to the Length property of the object in the Name property of the current DataContext
{Binding ElementName=SomeTextBox, Path=Text} Bind to the "Text" property of the element XAML element with name="SomeTextBox" or x:Name="SomeTextBox".

XML Binding

{Binding Source={StaticResource BooksData} XPath=/books/book} Bind the result of XPath query "/books/book" from the XML in the XmlDataProvider in a parent's "Resources" elememt with x:Key="BooksData".
{Binding XPath=@name} Bind to the result of an XPath query run on the XML node in the DataContext (for example in an ItemControl's DataTemplate when the ItemsControl.ItemsSource is bound to an XML data source).

Relative Source Binding

{Binding RelativeSource={RelativeSource Self}} Bind to the target element.
{Binding RelativeSource={RelativeSource Self}, Path=Name} Bind to the "Name" property of the target element.
{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=Title} Bind to the title of the parent window.
{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}, AncestorLevel=2}, Path=Name} Bind the the name of the 2nd parent of type ItemsControl.
{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Name} Inside a control template, bind to the name property of the element the template is applied to.
{TemplateBinding Name} Shortcut for the previous example.

Collection Current Item Binding

{Binding /} Bind to the current item in the DataContext (when DataContext is a collection)
{Binding AllItems/} Bind to the current item in the "AllItems" property of the DataContext
{Binding AllItems/Name} Bind to the "Name" property of the current item in the "AllItems" property of the DataContext
 

Alphabetical list of all Binding's properties

Property

Description

BindingGroupName (3.5sp1) The name of the BindingGroup to which this binding belongs. A BindingGroup is used to validate multiple bindings together (for example when multiple changes should be submitted all at once).
BindsDirectlyToSource When using a DataSourceProvider derived class (for example a ObjectDataProvider) setting this property to true will bind to the data source provider object itself, leaving it false will bind to the data contained in the data source.
Converter The converter to use, usually you create the converter in a parent element's Resources element and reference it using a {StaticResource name) or create the converter as a static field and reference it with {x:Static ns:class.field}
ConverterCulture The culture passed to the converter.
ConverterParameter The parameter passed to the converter
ElementName Element name, when binding to an element in the same XAML scope. Can't be used if RelativeSource or Source is set.
FallbackValue Value to use when the Binding encounters an error
IsAsync Use when the property's get accessor takes a long time, to avoid blocking the UI thread, While waiting for the value to arrive, the binding reports the FallbackValue.
Mode Direction of binding, possible options:

  • TwoWay - updates the target property or the source property whenever the other one changes.

  • OneWay - updates the target property only when the source property changes.

  • OneTime - updates the target property only when the application starts or when the DataContext undergoes a change.

  • OneWayToSource - updates the source property when the target property changes, useful the target property is not a dependency property – put the binding on what would normally be the source and point it to the target.

  • Default - causes the default Mode value of target property to be used

NotifyOnSourceUpdated Raise the SourceUpdated event when a value is transferred from the binding target to the binding source.
NotifyOnTargetUpdated Raise the TargetUpdated event when a value is transferred from the binding source to the binding target.
NotifyOnValidationError Raise the Error attached event on the bound object.
Path Source property.
RelativeSource Binding source relative to the target, possible options:

  • {x:Static RelativeSource.Self} or {RelativeSource Self} bind to target element.

  • {RelativeSource FindAncestor, AncestorType={x:Type TypeName}} Bind to the first parent of type TypeName

  • {RelativeSource FindAncestor, AncestorType={x:Type TypeName}, AnsestorLevel=n} Bind to the nth parent of type TypeName

  • {RelativeSource TemplatedParent} bind to the element this template is applied to (useful in control templates, considerusing TemplateBinding instead. Can't be used if ElementName or Source is set.

Source Object to use as the binding source. Can't be used if ElementName or RelativeSource is set.
StringFormat (3.5sp1) Format string to use when converting the bound value to a string. Works only if the target property is of type string.
TargetNullValue (3.5sp1) Value to use when the bound value is null.
UpdateSourceExceptionFilter Custom logic for handling exceptions that the binding engine encounters. Only if you add an ExceptionValidationRule to ValidationRules or set ValidatesOnExceptions
UpdateSourceTrigger Timing of binding source updates, possible options:

  • Default - The default UpdateSourceTrigger value of the binding target property. The default is usually PropertyChanged, while the Text property is LostFocus.

  • PropertyChanged - Updates the binding source immediately whenever the binding target property changes.

  • LostFocus - Updates the binding source whenever the binding target element loses focus.

  • Explicit - Updates the binding source only when you call the UpdateSource method.

ValidatesOnDataErrors (3.5sp1) Use IDataErrorInfo when validating.
ValidatesOnExceptions (3.5sp1) Treat exceptions as validation failures.
ValidationRules Collection of rules that check the validity of the user input.
XPath XPath query that returns the value on the XML binding source to use. Top

WPF binding 参考的更多相关文章

  1. WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...

  2. WPF Binding值转换器ValueConverter使用简介(二)-IMultiValueConverter

    注: 需要继承IMultiValueConverter接口,接口使用和IValueConverter逻辑相同. 一.MultiBinding+Converter 多值绑定及多值转换实例 当纵向流量大于 ...

  3. WPF Binding值转换器ValueConverter使用简介(一)

    WPF.Silverlight及Windows Phone程序开发中往往需要将绑定的数据进行特定转换,比如DateTime类型的时间转换为yyyyMMdd的日期,再如有一个值是根据另外多组值的不同而异 ...

  4. WPF Binding

    winform有binding, WPF也有binding,区别在哪呢?这里暂时不提.以前也检查接触WPF binding, 但为什么过段时间就忘记了呢? 可能主要原因自己的知识体系不够完善吧,下面我 ...

  5. WPF Binding Mode,UpdateSourceTrigger

    WPF 绑定模式(mode) 枚举值有5个1:OneWay(源变就更新目标属性)2:TwoWay(源变就更新目标并且目标变就更新源)3:OneTime(只根据源来设置目标,以后都不会变)4:OneWa ...

  6. WPF Binding ElementName方式无效的解决方法--x:Reference绑定

    原文:WPF Binding ElementName方式无效的解决方法--x:Reference绑定 需求: 背景:Grid的有一个TextBlock name:T1和一个ListBox,ListBo ...

  7. WPF Binding学习(四) 绑定各种数据源

    转自:http://blog.csdn.net/lisenyang/article/details/18312199 1.集合作为数据源 首先我们先创建一个模型类 public class Stude ...

  8. UpdateSourceTrigger Property in WPF Binding

    介绍 这篇文章我将介绍在WPF和Silverlight中更新绑定源的概念.正如您所知道的,当我们用TwoWay的模式绑定时,任何在目标控件上发生的变化都会影响绑定源的值. 请注意只是在用TwoWay绑 ...

  9. .NET: WPF Binding对数据的校验和转换以及多路Binding

    一.校验 一般需要对target上的值进行校验. xaml: <Window x:Class="WpfApplication1.MainWindow" xmlns=" ...

随机推荐

  1. SDWebImage源码解读 之 UIImage+GIF

    第二篇 前言 本篇是和GIF相关的一个UIImage的分类.主要提供了三个方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name ----- 根据名 ...

  2. 用javascript 写个函数返回一个页面里共使用了多少种HTML 标签

    今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答 ...

  3. 微信公众号开发(一)--验证服务器地址的Java实现

    现在主流上都用php写微信公众号后台,其实作为后端语言之一的java也可以实现. 这篇文章将对验证服务器地址这一步做出实现. 参考资料:1.慕课网-<初识java微信公众号开发>,2.微信 ...

  4. 自定义鼠标光标cursor

    通过css属性 Cursor:url()自定义鼠标光标. {cursor:url('图标路径'),default;} url是自定义鼠标图标路径 default指的是定义默认的光标(通常是一个箭头), ...

  5. Zabbix 漏洞分析

    之前看到Zabbix 出现SQL注入漏洞,自己来尝试分析. PS:我没找到3.0.3版本的 Zabbix ,暂用的是zabbix 2.2.0版本,如果有问题,请大牛指点. 0x00 Zabbix简介 ...

  6. 烂泥:wiki系统confluence5.6.6安装、中文、破解及迁移

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb confluence是一个专业的企业知识管理与协同软件,可以用于构建企业wiki.通过它 ...

  7. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  8. Matrix4x4矩阵变换、欧拉角转四元数、角度转弧度

    Matrix4x4 // 重置矩阵 ][]) { m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] = ; m[][] ...

  9. MVVM大比拼之knockout.js源码精析

    简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...

  10. 我的“第一次”,就这样没了:DDD(领域驱动设计)理论结合实践

    写在前面 插一句:本人超爱落网-<平凡的世界>这一期,分享给大家. 阅读目录: 关于DDD 前期分析 框架搭建 代码实现 开源-发布 后记 第一次听你,清风吹送,田野短笛:第一次看你,半弯 ...