Можно ли программно добавить строку в сетку данных WPF? - PullRequest
3 голосов
/ 07 октября 2010

Я просто хочу добавить новую строку, у меня есть источник данных в объектах, в которых мне нужно выполнить некоторую обработку.мне нужно что-то вроде ниже для wpf datagrid ...

DataRow row = dataTable.NewRow();
foreach (NavItem item in record.Items)
{
    row[item.FieldNo.ToString()] = item.RecordValue;
}
dataTable.Rows.Add(row);

Ответы [ 2 ]

3 голосов
/ 12 ноября 2010

Вы должны использовать ObservableCollection<NavItem> в качестве источника сетки данных.Затем, просто добавив новый элемент в вашу коллекцию, вы добавите его в таблицу данных.

0 голосов
/ 08 октября 2010

Я не знаю, правильное ли это решение, но я пришел к чему-то похожему в отчаянии:

foreach (NavField field in this.Fields)
 {
      DataGridTextColumn column = new DataGridTextColumn();
      column.Header = field.FieldNo.ToString();

      //Some other logic
      // Hide non active and hidden fields
      if (!field.Active || !field.Show)
           column.Visibility = System.Windows.Visibility.Collapsed;

       grid.Columns.Add(column);
  }

Затем я добавляю datatable как itemssource:

  this.dataGridLines.ItemsSource = dataTable.DefaultView;

Если я устанавливаю объект данных напрямую, он не заботится о столбцах из данных и автоматически генерирует свои собственные столбцы, не знаю почему ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...