回顾Bingding类详解 databingding

Binding详解

属性


名称说明
Converter获取或设置要使用的转换器。
ConverterCulture获取或设置计算转换器要使用的区域性。
ConverterParameter获取或设置要传递给 Converter 的参数。
Delay在毫秒获取或设置时,,在更新绑定源前等待,在该目标的值更改后。(继承自 BindingBase。)
ElementName获取或设置要用作绑定源对象的元素的名称。
FallbackValue获取或设置当绑定无法返回值时要使用的值。(继承自 BindingBase。)
IsAsync获取或设置一个值,该值指示Binding是否应异步获取和设置值。
Mode获取或设置一个值,该值指示绑定的数据流方向。
NotifyOnSourceUpdated获取或设置一个值,该值指示当值从绑定目标传输到绑定源时是否引发SourceUpdated 事件。
NotifyOnTargetUpdated获取或设置一个值,该值指示当值从绑定源传输到绑定目标时是否引发TargetUpdated 事件。
NotifyOnValidationError获取或设置一个值,该值指示是否对绑定对象引发Error 附加事件。
Path获取或设置绑定源属性的路径。
RelativeSource通过指定绑定源相对于绑定目标的位置,获取或设置绑定源。
Source获取或设置要用作绑定源的对象。
StringFormat获取或设置一个字符串,该字符串指定如果绑定值显示为字符串,应如何设置该绑定的格式。(继承自 BindingBase。)
UpdateSourceTrigger获取或设置一个值,该值确定绑定源更新的执行时间。
ValidatesOnDataErrors获取或设置一个值,该值指示是否包含DataErrorValidationRule。
ValidatesOnExceptions获取或设置一个值,该值指示是否包含ExceptionValidationRule。
ValidatesOnNotifyDataErrors获取或设置一个值,该值指示是否包含NotifyDataErrorValidationRule。
ValidationRules获取用于检查用户输入有效性的规则集合。
XPath获取或设置一个 XPath查询,该查询返回要使用的 XML 绑定源的值。

附加事件


名称说明
SourceUpdated当值从绑定目标传输到绑定源时发生,但只针对NotifyOnSourceUpdated 值设置为 true的绑定。
TargetUpdated当值从绑定源传输到绑定目标时发生,但只针对NotifyOnTargetUpdated 值设置为 true的绑定。

Binding.SourceUpdated 附加事件

当值从绑定目标传输到绑定源时发生,但只针对 NotifyOnSourceUpdated 值设置为 true 的绑定。

Windows Presentation Foundation(WPF) 在每次更新绑定源或目标时都会引发数据更新事件。在内部,此事件用于通知用户界面(UI):它应该更新,因为绑定数据已更改。请注意,若要让这些事件起作用,并让单向或双向绑定正常工作,您需要使用INotifyPropertyChanged 接口实现您的数据类。有关更多信息,请参见如何:实现属性更改通知。

将绑定中的 NotifyOnTargetUpdated 或 NotifyOnSourceUpdated 属性(或两者)设置为 true。您提供的用于侦听此事件的处理程序必须直接附加到您希望收到更改通知的元素,或者如果您希望在上下文中的任何内容发生变化时得到通知,则附加到整个数据上下文。

下面的示例演示如何设置当目标属性更新时收到通知。

<</SPAN>TextBlockGrid.Row="1"Grid.Column="1"Name="RentText"
Text="{BindingPath=Rent, Mode=OneWay,NotifyOnTargetUpdated=True}"
TargetUpdated="OnTargetUpdated"/>


然后您可以根据 EventHandler 委托(在本示例中为OnTargetUpdated)分配处理程序来处理该事件:

private voidOnTargetUpdated(Object sender, DataTransferEventArgs args)
{
// Handleevent
...
}

Binding.Converter属性

Binding.UpdateSourceTrigger属性

获取或设置一个值,该值确定绑定源更新的执行时间。

UpdateSourceTrigger 值之一。默认值为 Default,它返回目标依赖项属性的默认 UpdateSourceTrigger 值。但是,多数依赖项属性的默认值为 PropertyChanged,而 Text 属性的默认值为 LostFocus。
确定依赖项属性的默认 UpdateSourceTrigger 值的编程方法是使用 GetMetadata 来获取属性的属性元数据,然后检查 DefaultUpdateSourceTrigger属性的值。

TwoWay 或 OneWayToSource 绑定侦听目标属性的更改,并将这些更改传播回源。这称为更新源。通常,只要目标属性进行了更改,就会进行这些更新。这对于复选框和其他简单控件很有用,但不适用于文本字段。每次键击之后进行更新都会降低性能,用户也得不到通常在提交新值之前使用退格键修改键入错误的机会。因此,Text属性的默认 UpdateSourceTrigger 值是 LostFocus,而不是 PropertyChanged。

如果将 UpdateSourceTrigger 值设置为 Explicit,则必须调用 UpdateSource 方法,否则所做的更改不会传播回源。

本主题描述如何使用 UpdateSourceTrigger属性控制绑定源更新的执行时间。本主题使用 TextBox 控件作为示例。

TextBox.Text属性的默认 UpdateSourceTrigger 值为 LostFocus。这意味着如果应用程序的 TextBox 包含数据绑定 TextBox.Text属性,则直到 TextBox 失去焦点(例如,将鼠标移到 TextBox 外单击时),键入到 TextBox 中的文本才能更新源。

如果希望在键入过程中更新源,请将该绑定的 UpdateSourceTrigger 设置为 PropertyChanged。在下面的示例中,TextBox和 TextBlock 的 Text 属性都绑定到同一源属性。将 TextBox 绑定的 UpdateSourceTrigger 属性设置为 PropertyChanged。

<Label>Enter a Name:</Label>
<TextBox>
<TextBox.Text>
<Binding Source="{StaticResourcemyDataSource}"Path="Name"
UpdateSourceTrigger="PropertyChanged"/>
</TextBox.Text>
</TextBox>

回顾Bingding类详解 databingding
<Label>The name youentered:</Label>
<TextBlock Text="{BindingSource={StaticResource myDataSource}, Path=Name}"/>

因此,TextBlock所显示的文本将与用户输入到 TextBox 中的文本相同(因为源发生更改),如该示例的以下屏幕快照所示:

如果您具有一个对话框或用户可编辑的窗体,并且希望将源更新延迟到用户完成字段编辑并单击“确定”之后,则可以将绑定的UpdateSourceTrigger 值设置为 Explicit,如下面的示例所示:

XAML复制
<TextBox Name="itemNameTextBox"         Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />

如果将 UpdateSourceTrigger 值设置为 Explicit,则仅当应用程序调用 UpdateSource 方法时,该源值才会发生更改。下面的示例演示如何为 itemNameTextBox 调用UpdateSource:

// itemNameTextBox is aninstance of a TextBox
BindingExpression be =itemNameTextBox.GetBindingexpression_r(TextBox.TextProperty);
be.UpdateSource();


UpdateSourceTrigger 属性用于处理源更新,因此仅适用于TwoWay 或 OneWayToSource 绑定。若要使 TwoWay 和 OneWayToSource 绑定生效,源对象需要提供属性更改通知。有关更多信息,可以参见本主题中引用的示例。此外,也可以参见如何:实现属性更改通知。

Binding.RelativeSource 属性

此属性通常用于将对象的某个属性绑定到该对象的另一个属性,或用于在样式或模板中定义绑定。

默认情况下,如果已设置了DataContext属性,则绑定会继承该属性所指定的数据上下文。但是,RelativeSource属性是一种可以显式设置 Binding 的源和重写继承的数据上下文的方式。有关更多信息,请参见如何:指定绑定源。

此外,使用 Binding.ElementName 和 Binding.Source属性还可以显式设置绑定源。但是,对于每个绑定,只能设置ElementName、Source和 RelativeSource这三个属性中的一个,否则可能发生冲突。如果存在绑定源冲突,则此属性将引发异常。

说明

AncestorLevel在 FindAncestor 模式中获取或设置要查找的上级节点的级别。使用 1表示与绑定目标元素最近的一个级别。
AncestorType获取或设置要查找的上级节点的类型。
Mode获取或设置一个 RelativeSourceMode值,该值描述绑定源相对于绑定目标的位置。
PreviousData获取一个静态值,该值用于返回为PreviousData 模式构造的 RelativeSource。
Self获取一个静态值,该值用于返回为Self 模式构造的 RelativeSource。
TemplatedParent获取一个静态值,该值用于返回为TemplatedParent 模式构造的 RelativeSource。

RelativeSourceMode枚举

描述相对于绑定目标位置的绑定源的位置。

成员


成员名称说明
PreviousData允许您绑定所显示数据项列表中以前的数据项(不是包含数据项的控件)。
TemplatedParent引用应用了模板(其中有数据绑定元素)的元素。这类似于设置 TemplateBindingExtension,并仅当 Binding 在模板中时适用。
Self引用您对其设置绑定的元素,并允许您将该元素的一个属性绑定到同一元素中的其他属性。
FindAncestor引用数据绑定元素父链中的上级。您可以使用它绑定到特定类型或其子类的上级。如果您要指定 AncestorType 和/或 AncestorLevel,可以使用此模式。

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/218008.html

更多阅读

如何填写政治面貌?详解 如何查看自己政治面貌

如何填写政治面貌?【详解】——简介政治面貌可不是指的人的外貌,政治面貌其实是一个人的政治身份。对于我们普通公民而言,政治身份似乎没有什么影响,但是对于当权者或者机构组织而言,政治面貌就很重要了,在对个人考察方面或者职位提升方面

不同脸型适合画眉方法,详解眉毛的画法 方脸型画眉

?特写看一下...  对于圆脸型的妹子来说,需要有一些角度的眉毛,把眉峰吊起来,让脸型看起来更有棱角一些~对于下巴比较宽或者太阳穴比较窄的妹纸,美貌的形状要大气自然,而且要适当的短一些,并且加重眉头部分不同脸型适合画眉方法,详解

100道门2013攻略100关图文详解:1 第1~10关

100道门2013攻略100关图文详解:[1]第1~10关——简介100道门2013是安卓平台一款新颖的解密益智游戏,你需要在房间中发现线索,然后把门打开进入下一个房间。每一个房间的主题都不一样,将给你带来百次不同的游戏体验!100道门2013攻略100关

CSOL咆哮怒焰M14EBR详解以及专业强化分析 csol咆哮怒焰强化

众所周知,咆哮怒焰系列是威力最大的突击步枪,其高威力以及不俗的精准度让它成为了一把点射神器。而强化系统更是让这把大威力步枪如虎添翼,咆哮怒焰可以算是最值得强化的几把枪支之一了。下面是这把枪的简略评测,以及它的强化详解。大家

研究生网上报名流程 超详解 2017研究生报名流程

研究生网上报名流程 【超详解】——简介现在开始报名的话,是针对应届的毕业生的,不过过段时间都可以报名的。流程都是一样的。研究生网上报名流程 【超详解】——方法/步骤研究生网上报名流程 【超详解】 1、首先,我们搜索,进入到中国

声明:《回顾Bingding类详解 databingding》为网友相爱到放弃分享!如侵犯到您的合法权益请联系我们删除