WPF - DataGrid自定义绑定 - 具有动态数量属性的自定义对象列表 - C#

时间:2010-11-09 14:54:33

标签: wpf data-binding

使用Linq pad我创建了一个数据库中的数据视图,我现在希望在WPF应用程序中进行复制。

我利用了Linq Dump()方法。通过实现ICustomMemberProvider,我可以提供我想要输出的列标题,类型和值。我需要实现的三种方法是

   public IEnumerable<string> GetNames() 
   public IEnumerable<Type> GetTypes()
   public IEnumerable<object> GetValues()

这是一种简单,快速,简洁的描述单行或多行Dump()'的方式。

对于我的生活,我在WPF中找不到任何直截了当的东西。我有一个动态(每行不行)列数,所以我不能硬编码列标题和绑定路径,可能有5列,可能有20个。

我被指向ICustomTypeDescriptor,但我需要一个具体的例子,告诉我该如何工作,因为该界面中有很多方法。

我真的希望有一些我错过的更简单的东西,这将允许我动态地实现行和列应包含IEnumerable我的自定义类的内容。

任何指向教程的链接或概述如何工作都将非常感激。我很惊讶我发现缺少文档,所以我必须使用错误的术语。

为清楚起见,单行的来源是这样的类的实例;

public class CustomDatum 
{
   public string ID {get; private set;}
   public string Location {get; private set;}

   public IEnumerable<Attributes> attributes {get; private set;}

   public class Attribute 
   {
       public string Name {get; private set;}
       public string Value {get; private set;}

       public override ToString()
       {
           ....
       }
   }
}

我想在一行中显示ID,位置和所有属性,我要绑定IEnumerable<CustomDatum>。实际的课程自然比这个例子复杂得多。

谢谢!

1 个答案:

答案 0 :(得分:1)

我很确定您可以使用DataGridView并将其AutoGenerateColumns设置为true。

ICustomTypeDescriptor

example