将对象属性绑定到WPF中的数据网格

时间:2014-10-23 13:47:07

标签: c# wpf datagrid

我有以下课程:

public class Sp3dItem
{
    public Sp3dItem()
    {
        Items= new ObservableCollection<Sp3dItem>();
    }

    public string OID
    {
        get;
        set;
    }

    public string Name
    {
        get;
        set;
    }

    public string Type
    {
        get;
        set;
    }

    public ObservableCollection<Sp3dItem> Items
    {
        get;
        set;
    }
}

我需要向Datagrid(或任何其他类型的网格)显示此对象的实例的属性。与Visual Studio中的“属性”窗口类似。但是有一些我不关心的属性,比如'Items',我只需要显示字符串Type的属性,只有非空值的属性(这最后一个属性是加号,而不是真正的需要)。

问题是,我可以通过绑定做这样的事情,还是必须手动组装网格上的数据?

2 个答案:

答案 0 :(得分:2)

听起来你想要一个属性网格来查看单个对象实例的属性,其中每个属性/值对都是'row',是吗?如果是这种情况,请查看一些第三方Property Grid控件。 WPF Extended Toolkit有一个免费的。

通常,这些网格可以自动发现目标对象的属性,您可以选择隐藏某些属性,方法是使用[Browsable(false)]进行装饰。

答案 1 :(得分:1)

是的......一旦你弄清楚内置属性页面绑定向导如何与WPF一起工作,它是可能的,也很容易。为了让它适合您:

  1. 在视图中为视图模型创建静态实例。通过这样做,设计人员将在中显示Viewmodel的属性 属性页面一旦开始“连接绑定”...
  2. 在属性页面中,单击图标(属性最右侧的小方块)以启动绑定过程
  3. 请注意此向导将如何自动查找上下文并向您显示要绑定的属性?
  4. 选择所需的属性并通过观察输出窗口来测试代码。
  5. 如果需要,您还可以编辑Datagrid的模板,但这与您的问题无关。