Поскольку вы упомянули о возможности перехода к ListView, я подумал, что вместо этого рекомендую использовать DataGrid, поскольку после загрузки данных в DataTable DataGrid выполняет всю работу за вас, чтобы генерировать столбцы и строки.
Вот некоторый рабочий код, который я скопировал, чтобы вы начали.
Вот привязка для DataGrid:
<WpfToolkit:DataGrid
IsReadOnly="True"
IsTabStop="False"
ItemsSource="{Binding Path=GridData, Mode=OneWay}">
</WpfToolkit:DataGrid>
Определите свойство для привязки XAML в классе (я используюшаблон MVVM):
private DataTable _dt = new DataTable("MyDataTable");
public DataView GridData
{
get
{
return _dt.DefaultView;
}
}
Добавьте столбцы данных в таблицу данных следующим образом:
DataColumn fileType = new DataColumn("FileType");
fileType.AllowDBNull = true;
fileType.DataType = typeof(string);
_dt.Columns.Add(fileType);
Добавьте строки данных в таблицу данных следующим образом:
DataRow dr = _dt.NewRow();
dr["FileType"] = "*.txt";
_dt.Rows.Add(dr);
Сбросьте строки и столбцы следующим образом:
_dt.Rows.Clear();
_dt.Columns.Clear();
Использование этих частей - все, что мне нужно для динамической генерации DataGrid.