2010-11-24 90 views
0

我有一个Datagrid,在启动时我设置了它的一组列,然后我将它绑定到List>以便用数据填充它。每个嵌套列表的项数与我得到的列数相同,但是...我没有看到任何内容......将2D集合绑定到DataGrid的正确做法是什么?ADO.NET DataGrid字符串绑定

代码示例

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

谢谢 Miloud B.

回答

2

那么这个

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; 
+0

谢谢你院长!我适应了这个DataGridView,它的工作原理!但只有一个担心:grid.ItemsSource = rows会导致绑定两个结尾列:从List绑定的容量和计数...我如何排除它们? – CoolStraw 2010-11-24 09:36:18

1

试试这个

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

+0

谢谢Dean。只有一个想法,我必须以编程方式绑定,我无法在我的上下文中编辑我的xaml。 – CoolStraw 2010-11-24 09:02:57