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 ...
随机推荐
- 【转】Vim自动补全插件----YouCompleteMe安装与配置
原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assis ...
- SpringBoot2.0 url中出现特殊符号「带括号{}'"等等」时会抛出400错误
访问 http://127.0.0.1:8080/api?method=taxiong.goods.list¶ms={"page":1,"pageSize ...
- 谜一样的jquery之$选择器
jquery是一个强大的js类库,提供了很多便利的操作方法并兼容不同的浏览器,一旦使用便欲罢不能,根本停不下来,今天我们就来解读一下这个神秘的jquery源代码. 前几天思考再三,自己尝试着封装了一下 ...
- pytest框架 里 fixture 参数化的方法
- HDU 1710 Binary Tree Traversals(树的建立,前序中序后序)
Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
- 语音-数字中继-E1-学习帖
1.电话线,俗称数字中继,模拟线路,一门电话线只能跑一个电话号码,用模拟语音卡:2.光纤,信令有两种30B+D(也叫pri信令)或者7号信令,数字线路,一路可以跑30路电话,用数字语音卡:数字语音卡 ...
- ACM-ICPC 2018全国邀请赛(陕西西安)
一.火车晚点 星期五下午4.36的火车,我们3点到了长沙火车站.差不多4点了,提示,晚点1h45min,DZC马上说,不知道会不会延误郑州到西安的那趟车.过了一会,又提示,晚点2h17min,再过一会 ...
- 第7课 Qt中的坐标系统
1. 坐标系统 (1)GUI操作系统都有特定的坐标系统 (2)图形界面程序在坐标系统中进行窗口和部件的定位 (3)定位类型 ①顶级窗口部件的定位 ②窗口内部件的定位 ③窗口部件的大小设置 (4)QWi ...
- canvas给图形添加颜色
canvas给图形添加颜色 合法属性 ctx.fillStyle = 'orange'; ctx.fillStyle = '#FFA500'; ctx.fillStyle = 'rgb(255, 16 ...
- python爬搜狗微信获取指定微信公众号的文章
前言: 之前收藏了一个叫微信公众号的文章爬取,里面用到的模块不错.然而 偏偏报错= =.果断自己写了一个 正文: 第一步爬取搜狗微信搜到的公众号: http://weixin.sogou.com/we ...