WPF数据绑定内容简介.doc_第1页
WPF数据绑定内容简介.doc_第2页
WPF数据绑定内容简介.doc_第3页
WPF数据绑定内容简介.doc_第4页
WPF数据绑定内容简介.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 创建简单绑定此示例演示如何创建简单的 Binding。在此示例中,假设您具有一个字符串属性名为 PersonName 的 Person 对象。Person 对象是在名为 SDKSample 的命名空间中定义的。下面的示例用值为 Joe 的 PersonName 属性来实例化 Person 对象。这是在 Resources 部分中完成的,系统会为该对象分配一个 x:Key。 .若要绑定到 PersonName 属性,您需执行以下命令:2、 指定绑定源在数据绑定中,绑定源对象指的是您从其获取数据的对象。本主题描述了指定绑定源的几种不同方法。如果您要将几个属性绑定到一个通用源,则您需要使用 DataContext 属性,它能让您方便地建立一个范围,所有数据绑定的属性都在该范围中继承通用源。在下面的示例中,数据上下文建立在应用程序的根元素上。这允许所有子元素继承该数据上下文。绑定的数据来自自定义数据类 NetIncome,可通过映射直接引用该类,已为该类分配了 incomeDataSource 资源键。有关完整的代码示例,请参见控制数据流方向和计时的示例。 以上示例实例化标记中的对象,并将其用作资源。如果您希望绑定到已在代码中实例化的对象,则需要通过编程方式设置 DataContext 属性。有关示例,请参见如何:使数据可用于 XAML 中的绑定。另外,如果您希望在各个绑定上显式指定源,则可以选择以下属性。这些属性优先于继承的数据上下文。3、 使数据可用于xaml中的绑定本主题讨论使数据可用于在可扩展应用程序标记语言 (XAML) 中绑定的不同方式,具体使用哪种方式取决于您的应用程序需要。如果您具有一个公共语言运行时 (CLR) 对象,并希望从 公共语言运行时 (CLR) 绑定到该对象,使该对象可用于绑定的一种方式就是将其定义为资源,并为其赋予 x:Key。在下面的示例中,假设您具有一个字符串属性名为 PersonName 的 Person 对象。Person 对象是在名为 Person 的命名空间中定义的。 然后,您可以绑定到 XAML 中的对象,如下例所示。不过,如果要绑定到已经创建的对象,则您需要以代码形式设置 DataContext,如下例所示。DataSet myDataSet;private void OnInit(object sender, EventArgs e) string mdbFile = Path.Combine(AppDataPath, BookData.mdb); string connString = string.Format( Provider=Microsoft.Jet.OLEDB.4.0; Data Source=0, mdbFile); OleDbConnection conn = new OleDbConnection(connString); OleDbDataAdapter adapter = new OleDbDataAdapter(SELECT * FROM BookTable;, conn); myDataSet = new DataSet(); adapter.Fill(myDataSet, BookTable); / myListBox is a ListBox control. / Set the DataContext of the ListBox to myDataSet myListBox.DataContext = myDataSet;若要查看完整示例,请参见简单绑定示例和绑定到 ADO.NET 数据集示例。若要使用 XmlDataProvider 类访问用于绑定的 XML 数据,请参见如何:使用 XMLDataProvider 和 XPath 查询绑定到 XML 数据。若要使用 ObjectDataProvider 类访问用于绑定的 XML 数据,请参见如何:绑定到 XDocument、XElement 或 LINQ for XML 查询结果。有关要绑定到的数据的不同指定方式的信息,请参见如何:指定绑定源。有关您可以绑定到的数据类型及如何实现自己的公共语言运行时 (CLR) 对象以用于绑定的信息,请参见绑定源概述。4、 控制文本框文本更新源的时间本主题描述如何使用 UpdateSourceTrigger 属性控制绑定源更新的执行时间。本主题使用 TextBox 控件作为示例。TextBox .Text 属性的默认 UpdateSourceTrigger 值为 LostFocus。这意味着如果应用程序的 TextBox 包含数据绑定 TextBox.Text 属性,则直到 TextBox 失去焦点(例如,将鼠标移到 TextBox 外单击时),键入到 TextBox 中的文本才能更新源。如果希望在键入过程中更新源,请将该绑定的 UpdateSourceTrigger 设置为 PropertyChanged。在下面的示例中,TextBox 和 TextBlock 的 Text 属性都绑定到同一源属性。将 TextBox 绑定的 UpdateSourceTrigger 属性设置为 PropertyChanged。如果您具有一个对话框或用户可编辑的窗体,并且希望将源更新延迟到用户完成字段编辑并单击“确定”之后,则可以将绑定的 UpdateSourceTrigger 值设置为 Explicit,如下面的示例所示:如果将 UpdateSourceTrigger 值设置为 Explicit,则仅当应用程序调用 UpdateSource 方法时,该源值才会发生更改。下面的示例演示如何为 itemNameTextBox 调用 UpdateSource:/ itemNameTextBox is an instance of a TextBoxBindingExpression be = itemNameTextBox.GetBindingExpression(TextBox.TextProperty);be.UpdateSource();UpdateSourceTrigger 属性用于处理源更新,因此仅适用于 TwoWay 或 OneWay 绑定。若要使 TwoWay 和 OneWay 绑定生效,源对象需要提供属性更改通知。有关更多信息,可以参见本主题中引用的示例。此外,也可以参见如何:实现属性更改通知。5、 指定绑定的方向此示例演示如何指定绑定是仅更新绑定目标(目标)属性或绑定源(源)属性,还是同时更新目标属性和源属性。使用 Mode 属性指定绑定的方向。以下枚举列表列出了可供绑定更新的选项: 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。 OneWay 仅当源属性发生更改时更新目标属性。 OneTime 仅当应用程序启动时或 DataContext 进行更改时更新目标属性。 OneWayToSource 在目标属性更改时更新源属性。 Default :使用目标属性的默认 Mode 值。有关更多信息,请参见 BindingMode 枚举。下面的示例演示如何设置 Mode 属性。有关完整示例,请参见控制数据流方向和计时的示例。若要检测源更改(适用于 OneWay 和 TwoWay 绑定),则源必须实现一种合适的属性更改通知机制(如 INotifyPropertyChanged)。有关 INotifyPropertyChanged 实现的示例,请参见如何:实现属性更改通知。对于 TwoWay 或 OneWayToSource 绑定,可以通过设置 UpdateSourceTrigger 属性来控制源更新计时。有关更多信息,请参见 UpdateSourceTrigger。11绑定到方法下面的示例演示如何使用 ObjectDataProvider 绑定到方法。在本示例中,TemperatureScale 是一个类,它有一个方法 ConvertTemp,该方法将接收两个参数(一个是 double 类型,另一个是 enum 类型 TempType),并将给定值从一个温标转换为另一个温标。在下面的示例中,ObjectDataProvider 用于实例化 TemperatureScale 对象。将使用两个指定参数调用 ConvertTemp 方法。 0 Celsius 方法可以作为资源使用,因此您可绑定到其结果。在以下示例中,TextBox 的 Text 属性和 ComboBox 的 SelectedValue 绑定到方法的两个参数。用户可借此指定要转换到的温度以及要转换自的温标。请注意,BindsDirectlyToSource 设置为 true,因为我们要绑定到 ObjectDataProvider 实例的 MethodParameters 属性,而不是绑定到由 ObjectDataProvider 包装的对象(TemperatureScale 对象)的属性。用户修改 TextBox 的内容或 ComboBox 的选定内容时,最后一个 Label 的 Content 将更新。Enter the degree to convert: Celsius FahrenheitResult:转换器 DoubleToString 接收一个 double 类型的数据,并以 Convert 方向(从绑定资源到绑定目标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论