2010-11-24 87 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