Для одного из моих проектов я пытаюсь загрузить данные из файла (например, * .csv) и отобразить его в DataGrid
. Формат файла не указан. Например, количество столбцов и строк отличается от файла к файлу. Поэтому задача состоит в том, чтобы загрузить общую таблицу данных в программу и просмотреть ее в DataGrid
.Связывание данных Wpf DataGrid с произвольными столбцами и строками
Моей первой попыткой было использовать DataTable
и связать его как-то с DataGrid
. Однако после некоторого времени поиска я прочитал, что использование DataTable
- не лучшее решение, и вместо этого следует использовать модели данных. К сожалению, большинство примеров в Интернете используют данные с фиксированными столбцами данных. Кроме того, я не смог получить привязку между DataGrid
и DataTable
для правильной работы. Было бы очень приятно иметь возможность вносить изменения в данные на обоих концах: DataGrid
(как пользователь) и базовую структуру данных (как и код).
Пожалуйста, может кто-нибудь объяснить, почему DataTable
не должен использоваться? Что следует использовать вместо этого для достижения вышеуказанного поведения?
Загрузка самой информации не должна быть проблемой, но как хранить, обрабатывать и связывать таблицу данных гибким способом с DataGrid
.
Следующий код вид работ. Однако, похоже, он не реагирует на какие-либо изменения в данных, например, добавление строк или столбцов, но DataTable
содержит правильные данные.
<DataGrid x:Name="myDataGrid" AutoGenerateColumns="True"
x:Name="myDataGrid1" AutoGenerateColumns="True" ItemsSource="{Binding myDataTable}" />
DataTable myDataTable { get; private set; }
...
myDataGrid.DataContext = this;
LoadData();
myDataGrid.ItemsSource = myDataTable.DefaultView;
Я очень признателен за любую помощь! Заранее спасибо!
вы проверить: http://stackoverflow.com/questions/17915840/binding-a-wpf-datagrid-to-a-datatable? –
Спасибо за ваш ответ. Решение, представленное в этой теме, фактически совпадает с моим «примером». Это нормально, если содержимое ячеек изменяется, но не удается, если строки или столбцы меняются ... – Chocko