【问题标题】:How to Bind CLR Object to ListBox or DataGrid using Microsoft Expression Blend?如何使用 Microsoft Expression Blend 将 CLR 对象绑定到 ListBox 或 DataGrid?
【发布时间】:2010-07-19 18:44:43
【问题描述】:

我已经成功创建了我的数据源,它是 Person 类的 CLR 对象。 Person 类有一堆公共属性,例如 Name、Emails、Phones 等。我想将人员的电子邮件(有多个电子邮件)数据绑定到 DataGrid 或 ListBox 控件。

我希望能够选择要显示的电子邮件的哪些字段(电子邮件具有属性 ID、电子邮件和电子邮件类型)。如果我只是数据绑定 ItemsSource 属性:

  • 对于 DataGrid - 所有属性都已绑定(我想跳过 ID 属性)
  • 对于 ListBox - 仅显示电子邮件值,因此缺少电子邮件类型。

如何正确使用 Microsoft Expression Blend?如果对任何人都重要,我有最新的第 4 版。非常感谢!

【问题讨论】:

    标签: wpf expression-blend


    【解决方案1】:

    在 Blend 中单击 DataGrid 或 ListBox 的 ItemsSource 属性右侧的小框,然后选择“数据绑定...”

    如果 Blend 可以确定您用作 DataContext 的数据类型,那么您可以从“数据上下文”选项卡中选择您的集合。如果 Blend 不知道,那么您选择“使用自定义路径表达式”并输入要绑定到的属性的名称。

    希望这会有所帮助, 乙

    【讨论】:

    • 感谢您回答布赖恩。问题是,我已经做了你写的。我的问题是我无法选择要显示的电子邮件属性。按照您的指示,我的 DataGrid 显示所有电子邮件属性,即 ID、电子邮件值和电子邮件类型。我想选择要显示的那些。
    • Gotcha... 因此,对于 ListBoxes,数据上下文被绑定,您需要为其提供一个模板,该模板绑定到各个项目的属性。对于 DataGrid,您有两个选择:第一个是默认的自动生成列。如果要控制要显示的特定列,则必须声明它。看看这个:windowsclient.net/wpf/wpf35/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多