【问题标题】:How to bind to a collection of collections to display informationon a DataGrid?如何绑定到集合集合以在 DataGrid 上显示信息?
【发布时间】:2012-05-10 07:46:42
【问题描述】:

我正在尝试以编程方式将List<List<string>> 绑定到DataGrid。我正在使用 这个List<List<string>> 因为DataGrid 必须有可变数量的列。

实际上,我必须将DataGrid 绑定到string[][],但它部分有用,因为需要获取此数据结构并向其中添加行,这就是我想使用List<List<string>> 的原因.

目前,我正在使用这个 sn-p 来生成列。

dgResults.Columns.Clear();
for (int i = 0; i < numColumns; i++)
{
    DataGridTextColumn textColumn = new DataGridTextColumn();
    textColumn.Binding = new Binding(string.Format("[{0}]", i));
    dgResults.Columns.Add(textColumn);
}

我应该在textColumn.Binding 上使用什么来绑定到List&lt;list&lt;string&gt;&gt;

【问题讨论】:

  • 数据绑定系统不支持。
  • @SLaks 那你有什么推荐的呢?我应该得到ItemsSource 的内容,将它们转换为string[] 并通过实例化一个包含初始数据的新string[][] 来使用它来更新ItemsSource
  • 我认为将 DataGrid 绑定到仅在运行时才知道属性的对象集合的最简单方法是将 DataGrid 绑定到 DataTable (msdn.microsoft.com/en-us/library/system.data.datatable.aspx)。
  • Xaml 是什么样的;内部列表显示什么?
  • 我认为您将需要在绑定上使用路径。我在 GridView 上执行此操作,以将列绑定到该集合大小不同的对象集合。这是正确的做法。

标签: c# .net wpf binding datagrid


【解决方案1】:

哇...我使用的是string[][] 结构...但是使用我编写的sn-p,List&lt;List&lt;string&gt;&gt; 可以用于预期目的!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-17
    相关资源
    最近更新 更多