Я пытаюсь заполнить ListView пользовательской таблицей данных. Я хочу динамически создавать столбцы и строки из строк (toParse содержит строки, toParse2 содержит имена столбцов). Кажется, это не работает. Когда я запускаю программу, я вижу что-то вроде этого (System.Data.DataRowView): РЕЗУЛЬТАТ
public partial class MainWindow : Window
{
ListView items;
string toParse = "1 12 13\n2 15 16\n3 9 14\n20 123 541235\n4 1234 567";
string toParse2 = "id value1 value2";
public MainWindow()
{
InitializeComponent();
items = GenerateListView(10,10);
}
public ListView GenerateListView(int posx, int posy)
{
ListView listview = new ListView();
DataTable table = new DataTable();
string[] columnNames = toParse2.Split(' ');
foreach (string name in columnNames) table.Columns.Add(name);
string[] lines = toParse.Split('\n');
foreach(string line in lines) {
string[] values = line.Split(' ');
if (values.Length==columnNames.Length)
{
DataRow row = table.NewRow();
table.Rows.Add(row);
for (int i=0; i<values.Length; i++)
{
row[i] = values[i];
}
}
}
listview.ItemsSource = table.DefaultView;
this.grid1.Children.Add(listview);
return listview;
}
}
Кроме того, когда я отлаживаю таблицу, кажется, что счетчик строк действительно работает, но список равен нулю (?).
ListView
не имеет автоматического механизма для создания макета столбца на основеDataTable
. Вы можете создавать столбцы вручную или использоватьDataGrid
, который может создавать столбцы автоматически. - person V.Leon   schedule 01.05.2018