演练:在设计器中使用 DesignInstance 绑定到数据

本演练演示如何使用适用于 Visual Studio 的 WPF 设计器在设计时为在运行时分配的数据上下文创建数据绑定。 若要创建数据绑定,请使用数据绑定生成器创建一个特殊的设计时数据上下文并将 DesignInstance 设置为业务对象类型。 DesignInstance 为设计时属性。

在本演练中,您将执行下列任务:

  • 创建项目。

  • 创建 Customer 类业务对象。

  • TextBox 控件的数据绑定到数据上下文中 Customer 类的设计时实例。

在完成后,将拥有一个在运行时绑定到业务对象的文本框。 数据绑定是在 WPF 设计器中设置的。

提示

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置

系统必备

您需要以下组件来完成本演练:

  • Visual Studio 2010.

创建项目

第一步是创建 WPF 应用程序项目并启用设计时属性。

创建项目

  1. 使用 Visual Basic 或 Visual C# 新建一个名为 DataBindingDemo 的 WPF 应用程序项目。 有关更多信息,请参见如何:创建新的 WPF 应用程序项目

    MainWindow.xaml 将在 WPF 设计器中打开。

  2. 在“设计”视图中,单击 MainWindow 右下部分中的根大小标记 (根大小标记) 将根大小设置为自动大小。

    在 XAML 视图中,设计器添加 d 命名空间映射,该映射允许访问 DesignHeight 和 DesignInstance 之类的设计时特性。

创建业务对象

接下来,创建业务对象。 业务对象是一种拥有 FirstName 和 LastName 属性的简单 Customer 类。

提示

业务对象类型不必是可创建的即可用在设计时数据绑定中。 例如,可以在设计时绑定到抽象类。

创建业务对象

  1. 将一个名为 Customer 的新类添加到项目中。 有关更多信息,请参见如何:添加新项目项

  2. 用下面的代码替换自动生成的代码。

    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 设置为业务对象类型。

设置设计时数据上下文

  1. 在 WPF 设计器中打开 MainWindow.xaml。

  2. 在 XAML 视图中,将以下命名空间映射添加到 MainWindow 的开始标记中。 有关更多信息,请参见如何:将命名空间导入 XAML

    xmlns:local="clr-namespace:DataBindingDemo"
    
  3. 用以下 XAML 替换 Grid 元素的开始标记。

    <Grid d:DataContext="{d:DesignInstance Type=local:Customer}" Name="_grid">
    

    此 XAML 建立设计时数据上下文并使 Customer 类可用于创建数据绑定。

  4. 生成解决方案。

创建数据绑定

现在,可以使用数据绑定生成器创建与 Customer 业务对象的数据绑定。 下列过程演示如何将 TextBox 控件绑定到 Customer 对象的 FirstName 属性。

创建数据绑定

  1. 将一个 TextBox 控件从**“工具箱”**拖到 Window 上。

  2. 在“属性”窗口中,滚动到 Text 属性。

  3. 在左列的边缘,单击**“属性标记”**(属性标记)。

    此时出现一个菜单。

    提示

    您还可以右击该行以显示菜单。

  4. 单击**“应用数据绑定”**。

    数据绑定生成器随即显示,且**“路径”**窗格处于打开状态。

    数据绑定生成器

  5. 单击**“FirstName”**,然后按 Enter。

    在 XAML 视图中,Text 属性具有一个到 Customer 类型的 FirstName 属性的数据绑定。

设置运行时数据上下文

最后,分配运行时数据上下文。 无需对 XAML 或代码进行更改,即可在运行时使用设计时创建的数据绑定。

设置运行时数据上下文

  1. 在代码编辑器中打开 MainWindow.xaml.cs 或 MainWindow.xaml.vb。

  2. 用下面的代码替换自动生成的 MainWindow 构造函数。

    public MainWindow()
    {
        InitializeComponent();
    
        Customer c = new Customer();
        c.FirstName = "Brenda";
        c.LastName = "Diaz";
    
        this._grid.DataContext = c;
    }
    
  3. 按 F5 运行该应用程序。

    文本框中将显示在运行时创建的 Customer 对象的名字。

    在运行时设置的数据上下文

后续步骤

请参见

参考

DataContext

其他资源

设计时特性

WPF 设计器中的数据绑定