Связывание строк ADO.NET DataGrid - PullRequest
0 голосов
/ 24 ноября 2010

У меня есть Datagrid, при запуске я устанавливаю его набор столбцов, затем привязываю его к списку>, чтобы заполнить его данными.Каждый вложенный список имеет такое же количество элементов, что и количество столбцов, которые я получил, но ... я ничего не показываю ... Как правильно привязывать 2D-коллекцию к DataGrid?Пример кода

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

Спасибо, Милуд Б.

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

тогда как насчет этого

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;
1 голос
/ 24 ноября 2010

попробуйте

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

1 голос
/ 24 ноября 2010

Для Google вам нужно привязать вложенную коллекцию, а не 2D-коллекцию - таким образом вы получите больше результатов:)

В WPF DataGrid: DataGridComboxBox ItemsSource Привязка к коллекции ответить на ваш вопрос?

...