WPF 绑定备忘单
Part I – Common Examples
| 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 * |
* Someone has to manage the collection current item, you can do it in code using the CollectionView class or set IsSynchronizedWithCurrentItem="True" on a control that supports it (like ListBox) and is bound to the same collection.
Part II – 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:
|
| 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:
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 se |
| 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. |
| 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:
|
| 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 |
The Internationalization Fix
By default, when you use data binding and the target property is a string, WPF will format your value using the US English culture, to use the correct setting the user seletceted in the control panel add the following code before loading any GUI (the Application.Startup event is a good place)
FrameworkElement.LanguageProperty.OverrideMetadata(
typeof(FrameworkElement),
new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage( CultureInfo.CurrentCulture.IetfLanguageTag)));
WPF 绑定备忘单的更多相关文章
- Cheat (tldr, bropages) - Unix命令用法备忘单
cheat 是一个Unix命令行小工具,用来查询一些常用命令的惯用法(我们都知道,man page阅读起来太累了,常常是跳到最后去看 examples,但并不是所有man pages里面都有examp ...
- Nmap备忘单:从探索到漏洞利用(Part 5)
这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...
- Nmap备忘单:从探索到漏洞利用(Part 4)
这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...
- Nmap备忘单:从探索到漏洞利用(Part 2)
这是我们的第二期NMAP备忘单(第一期在此).基本上,我们将讨论一些高级NMAP扫描的技术,我们将进行一个中间人攻击(MITM).现在,游戏开始了. TCP SYN扫描 SYN扫描是默认的且最流行的扫 ...
- Objective-C教程备忘单
终极版本的Objective-C教程备忘单帮助你进行iOS开发. 想开始创建你的第一个iOS应用程序么?那么看一下这篇很棒的教程吧:Create your first iOS 7 Hello Worl ...
- HTML5属性备忘单
在网上闲逛的时候看到了文章,感觉总结的这个html5文章,决定转载过来,在排版的时候也帮助自己重新梳理复习一遍.毕竟学习基础最重要. by zhangxinxu from http://www.zha ...
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
实际使用MVVM进行WPF开发的时候,可能会用到列表控件中每行一个编辑或删除按钮,这时直接去绑定,发现无法响应: <DataGridTemplateColumn Header="操作& ...
- OWASP WEB会话管理备忘单 阅读笔记
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Session_ID_Properties 会话简介 HTTP是一种无状态 ...
- 跨站脚本(XSS)备忘单-2019版
这是一份跨站脚本(XSS)备忘录,收集了大量的XSS攻击向量,包含了各种事件处理.通讯协议.特殊属性.限制字符.编码方式.沙箱逃逸等技巧,可以帮助渗透测试人员绕过WAF和过滤机制. 译者注:原文由Po ...
随机推荐
- 【转】提高你开发效率的十五个Visual Studio 2010使用技巧
原文网址:http://developer.51cto.com/art/201203/321942.htm 2012-03-06 14:38 Ron Ngai Ron Ngai的博客 字号:T | T ...
- Android Studio中 ADB WIFI插件进行无线调试实践
首先要确保电脑和手机在同一个局域网中.具体步骤如下 1.Android Studio中安装ADB WIFI插件.安装成功后重启Android Studio.(没有安装过插件的同仁,请自己搜索) 2.手 ...
- 【android】SDK环境变量配置
Android SDK: Android SDK提供了你的API库和开发工具构建,测试和调试应用程序,Android.简单来讲,Android SDK 可以看做用于开发和运行Android应用的一个软 ...
- vs2010 光盘镜像免输入KEY 序列号
用ULTRA ISO打开VS2010 ISO文件.找到\Setup\setup.sdb,提取出来编辑.用记事本打开.搜索到[Product Key]配置节,如果下面为空,补上KEY.如果是试用KEY, ...
- emacs之配置之初始目录设置
emacsConfig/dir-setting.el (setq default-directory "~/" )
- C#计数器
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Bootstrap-CL:Well
ylbtech-Bootstrap-CL:Well 1.返回顶部 1. Bootstrap Well Well 是一种会引起内容凹陷显示或插图效果的容器 <div>.为了创建 Well,只 ...
- OpenGL 画高斯随机函数
高斯函数代码 const float CFFTOceanShader::_getGaussianRandomFloat() const { float u1 = rand() / (float)RAN ...
- solr删除全部索引数据
SOLR 删除全部索引数据: <delete><query>*:*</query></delete><commit/>
- 5_bootstrap之响应式布局|列表|按钮
5.响应式工具 为针对性地在移动页面上展示和隐藏不同的内容,bootStrap提供响应式工具. 可以让开发人员通过该工具决定,在何种屏幕尺寸下,隐藏或者显示某些元素 帮助手册位置:全局CSS样式--- ...