知识大全 WPF数据绑定之绑定声明
Posted 属性
篇首语:最是人间留不住,朱颜辞镜花辞树。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 WPF数据绑定之绑定声明相关的知识,希望对你有一定的参考价值。
WPF数据绑定之绑定声明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本主题讨论声明绑定的不同方法
先决条件 在阅读本主题之前 应当先熟悉标记扩展的概念和使用 这一点非常重要
本主题不介绍数据绑定的概念
在 XAML 中声明绑定 本节讨论如何在可扩展应用程序标记语言 (XAML) 中声明绑定
标记扩展使用Binding 是标记扩展 当您使用绑定扩展来声明绑定时 声明包含一系列子句 这些子句跟在 Binding 关键字后面 并由逗号 ( ) 分隔 绑定声明中的子句可以按任意顺序排列 因此有许多可能的组合 子句是名称=值 对 其中名称 是 Binding 属性 值 是您要为该属性设置的值
当在标记中创建绑定声明字符串时 必须将它们附加到目标对象的特定依赖项属性 下面的示例演示如何通过使用绑定扩展并指定 Source Path 和 UpdateSourceTrigger 属性来绑定 TextBox Text 属性
您可以通过这种方法来指定 Binding 类的大部分属性
对象元素语法对象元素语法是创建绑定声明的另一种方法 在大多数情况下 使用标记扩展或对象元素语法没有特定的优势 但是 在标记扩展不支持您的方案的情况下 例如 当您的属性值是不存在类型转换的非字符串类型时 您将需要使用对象元素语法
下面是对象元素语法和标记扩展使用的一个示例
此示例通过使用扩展语法声明绑定来绑定 Foreground 属性 Text 属性的绑定声明使用对象元素语法
MultiBinding 和 PriorityBindingMultiBinding 和 PriorityBinding 不支持 XAML 扩展语法 因此 如果您要在 XAML 中声明 MultiBinding 或 PriorityBinding 则必须使用对象元素语法
在代码中创建绑定 指定绑定的另一种方法是在代码中直接为 Binding 对象设置属性 下面的示例演示如何在代码中创建 Binding 对象并指定属性
如果您要绑定的对象是 FrameworkElement 或 FrameworkContentElement 则您可以直接对该对象调用 SetBinding 方法 而不是使用 BindingOperations :: SetBinding
绑定路径语法 使用 Path 属性可以指定您要绑定到的源值
在最简单的情况下 Path 属性值是要用于绑定的源对象的属性名 如 Path=PropertyName
在 C# 中可以通过类似语法指定属性的子属性 例如 子句 Path=ShoppingCart Order 设置与对象或属性 ShoppingCart 的 Order 子属性的绑定
若要绑定到附加属性 应在附加属性周围放置圆括号 例如 若要绑定到附加属性 DockPanel :: Dock 则语法是 Path=(DockPanel Dock)
可以在要应用索引器的属性名后面的方括号内指定属性的索引器 例如 子句 Path=ShoppingCart[ ] 将绑定设置为与属性的内部索引处理文本字符串 的方式对应的索引 还支持嵌套的索引器
可以在 Path 子句中混合索引器和子属性 例如 Path=ShoppingCart ShippingInfo[MailingAddress Street]
在索引器内部 您可以有多个由逗号 ( ) 分隔的索引器参数 可以使用圆括号指定每个参数的类型
例如 您可以有 Path= [(sys:Int ) (sys:Int ) ] 其中 sys 映射到 System 命名空间
转义机制在索引器 ([ ]) 内部 插入符号 (^) 用于对下一个字符进行转义
如果您在 XAML 中设置 Path 则还需要使用 XML 实体对 XML 分析程序专用的某些字符进行转义
使用 & 对字符 & 进行转义
使用 > 对结束标记 > 进行转义
此外 如果您使用标记扩展语法描述属性中的整个绑定 则需要使用反斜杠 \\ 对 WPF 标记扩展分析程序专用的字符进行转义
反斜杠 \\ 本身是转义字符
等号 (=) 将属性名与属性值隔开
逗号 ( ) 用于分隔属性
右大括号 () 是标记扩展的结尾
默认行为 如果未在声明中指定默认行为 则默认行为如下
创建一个尝试在绑定源值与绑定目标值之间执行类型转换的默认转换器 如果无法进行转换 则默认转换器会返回 null
如果您不设置 ConverterCulture 则绑定引擎会使用绑定目标对象的 Language 属性 在 XAML 中 此属性默认为 en US 或者从页面的根元素(或任何元素)继承值(如果已显式设置了一个值)
只要绑定已有数据上下文(例如 来自父元素的继承数据上下文) 并且该上下文所返回的项或集合适合于绑定 而不需要进一步的路径修改 则绑定声明可以不必有任何子句 Binding 在绑定作用于集合的情况下 这通常是为数据样式指定绑定的方式
默认 Mode 可能是单向 也可能是双向 具体取决于所绑定的依赖项属性 您始终可以显式声明绑定模式 以确保绑定具有所需的行为 通常 用户可编辑的控件属性(如 TextBox :: Text 和 RangeBase :: Value)默认为双向绑定 而其他大多数属性默认为单向绑定
cha138/Article/program/net/201311/11697相关参考
ASP.NET2.0高级数据处理之数据绑定 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在前面的模
ASP.NET数据绑定—多样的绑定方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在这个系列
Datalistgridviewrepeater数据绑定方法 SqlConnectioncon=newSqlConnection(); conConnectionString=server
C#高级编程:数据绑定对象[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
如前两个小节所述ASPNET为处理数据提供两组控件数据源控件和数据绑定控件本节介绍它们是如何相互配合的数据源控件处理后台的数据连接以及编辑排序分页等行为数据绑定控件
C#高级编程:数据绑定深入理解[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
C#高级编程:数据绑定深入理解[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n