演练:在设计器中使用 DesignInstance 绑定到数据
[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]
本演练演示如何使用适用于 Visual Studio 的 WPF 设计器在设计时为在运行时分配的数据上下文创建数据绑定。 若要创建数据绑定,请使用数据绑定生成器创建一个特殊的设计时数据上下文并将 DesignInstance 设置为业务对象类型。 DesignInstance 为设计时属性。
在本演练中,您将执行下列任务:
创建项目。
创建 Customer 类业务对象。
将 TextBox 控件的数据绑定到数据上下文中 Customer 类的设计时实例。
在完成后,将拥有一个在运行时绑定到业务对象的文本框。 数据绑定是在 WPF Designer中设置的。
备注
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。
系统必备
您需要以下组件来完成本演练:
- Visual Studio 2010.
创建项目
第一步是创建 WPF 应用程序项目并启用设计时属性。
创建项目
使用 Visual Basic 或 Visual C# 新建一个名为 DataBindingDemo 的 WPF 应用程序项目。 有关更多信息,请参见如何:创建新的 WPF 应用程序项目。
MainWindow.xaml 将在 WPF Designer中打开。
在“设计”视图中,单击 MainWindow 右下部分中的根大小标记 () 将根大小设置为自动大小。
在 XAML 视图中,设计器添加 d 命名空间映射,该映射允许访问 DesignHeight 和 DesignInstance 之类的设计时特性。
创建业务对象
接下来,创建业务对象。 业务对象是一种拥有 FirstName 和 LastName 属性的简单 Customer 类。
备注
业务对象类型不必是可创建的即可用在设计时数据绑定中。例如,可以在设计时绑定到抽象类。
创建业务对象
将一个名为 Customer 的新类添加到项目中。 有关更多信息,请参见How to: Add New Project Items。
用下面的代码替换自动生成的代码。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DataBindingDemo { public class Customer { public string FirstName { get; set; } public string LastName { get; set; } } }
设置设计时数据上下文
若要使用数据绑定生成器创建数据绑定,请创建一个特殊的设计时数据上下文并将 DesignInstance 设置为业务对象类型。
设置设计时数据上下文
在 WPF Designer中打开 MainWindow.xaml。
在 XAML 视图中,将以下命名空间映射添加到 MainWindow 的开始标记中。 有关更多信息,请参见如何:将命名空间导入 XAML。
xmlns:local="clr-namespace:DataBindingDemo"
用以下 XAML 替换 Grid 元素的开始标记。
<Grid d:DataContext="{d:DesignInstance Type=local:Customer}" Name="_grid">
此 XAML 建立设计时数据上下文并使 Customer 类可用于创建数据绑定。
生成解决方案。
创建数据绑定
现在,可以使用数据绑定生成器创建与 Customer 业务对象的数据绑定。 下列过程演示如何将 TextBox 控件绑定到 Customer 对象的 FirstName 属性。
创建数据绑定
在“属性”窗口中,滚动到 Text 属性。
在左列的边缘,单击**“属性标记”**()。
此时出现一个菜单。
提示
您还可以右击该行以显示菜单。
单击**“应用数据绑定”**。
数据绑定生成器随即显示,且**“路径”**窗格处于打开状态。
单击**“FirstName”**,然后按 Enter。
在 XAML 视图中,Text 属性具有一个到 Customer 类型的 FirstName 属性的数据绑定。
设置运行时数据上下文
最后,分配运行时数据上下文。 无需对 XAML 或代码进行更改,即可在运行时使用设计时创建的数据绑定。
设置运行时数据上下文
在代码编辑器中打开 MainWindow.xaml.cs 或 MainWindow.xaml.vb。
用下面的代码替换自动生成的 MainWindow 构造函数。
public MainWindow() { InitializeComponent(); Customer c = new Customer(); c.FirstName = "Brenda"; c.LastName = "Diaz"; this._grid.DataContext = c; }
按 F5 运行该应用程序。
文本框中将显示在运行时创建的 Customer 对象的名字。
后续步骤
- 可以绑定到示例设计时数据,示例设计时数据帮助您在实际数据可用时构造运行时正确的布局行为。 有关更多信息,请参见演练:使用 WPF 设计器中的示例数据。