代码之家  ›  专栏  ›  技术社区  ›  CoolStraw

ADO.NET数据网格字符串绑定

  •  0
  • CoolStraw  · 技术社区  · 14 年前

    我有一个Datagrid,在启动时我设置它的一组列,然后将它绑定到一个列表中,以便用数据填充它。每个嵌套列表的项目数与我得到的列数相同,但是。。。我什么都没看到。。。将2D集合绑定到DataGrid的正确做法是什么?

    代码示例

    List<List<String>> rows = SomeFunctionThatReturnsTheRows();
    this.grid.ItemsSource = rows;
    

    谢谢您, 米卢德B。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Dean Chalk    14 年前

    那这个怎么样

    var rows = new List<List<string>>()
          {
              new List<string>() {"List1-1", "List1-2", "List1-3"},
              new List<string>() {"List2-1", "List2-2", "List2-3"}
          };
    GridView gv = new GridView();
    this.grid.View = gv;
    gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[0]")});
    gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[1]")});
    gv.Columns.Add(new GridViewColumn(){DisplayMemberBinding = new Binding(".[2]")});
    this.grid.ItemsSource = rows;
    
        2
  •  1
  •   Dean Chalk    14 年前

    试试这个

    DataContext = new List<List<string>>()
      {
          new List<string>() {"List1-1", "List1-2", "List1-3"},
          new List<string>() {"List2-1", "List2-2", "List2-3"}
      };
    
    <ListView ItemsSource="{Binding}">
      <ListView.View>
        <GridView>
          <GridView.Columns>
            <GridViewColumn DisplayMemberBinding="{Binding .[0]}" /> 
            <GridViewColumn DisplayMemberBinding="{Binding .[1]}" /> 
            <GridViewColumn DisplayMemberBinding="{Binding .[2]}" /> 
          </GridView.Columns>
        </GridView>
      </ListView.View>
    </ListView>
    

    产生这个

    alt text

        3
  •  1
  •   Community basarat    7 年前

    你需要谷歌搜索的是绑定到一个嵌套的集合,而不是二维集合-这样你会得到更多的结果:)

    WPF DataGrid: DataGridComboxBox ItemsSource Binding to a Collection of Collections 回答你的问题?