Мне нужно создать элемент управления сеткой в пользовательском элементе управления. У меня проблемы, потому что столбцы не известны заранее и поступают из данных, к которым я привязываю. Форма данных выглядит следующим образом ...
public class SummaryRow
{
public string Name { get; set; }
public GridCellValue[] Values { get; set; }
public class GridCellValue
{
public string Value { get; }
public string Status { get; }
public GridCellValue(string value, string status)
{
Value = value;
Status = status;
}
}
}
Так что есть экземпляр этого класса на строку в сетке. Я могу изменить форму этого класса, если потребуется, если есть способ структурировать это, чтобы упростить его.
Первый столбец будет иметь свойство Name
и является просто текстовым блоком. Остальные столбцы должны быть шаблоном (таким же шаблоном), как и я, чтобы настроить их на основе свойства Status
. За исключением первого столбца, они все одного и того же шаблона - просто связаны с различными элементами массива Values
. У меня также есть другой строковый массив в viewmodel с именами заголовков.
Я не возражаю, если это Grid
, ItemsControl
, DataGrid
или комбинация - но она не должна выглядеть как "сетка данных" (т. Е. Электронная таблица;) ). * * 1016
Я пробовал это решение , но это не добавило новые столбцы в таблицу данных - но просто показало смещенную сетку в одном столбце таблицы данных.
Когда дело доходит до этого, я не возражаю против программного добавления столбцов в коде. Я просто не знаю, как настроить привязку для этого, чтобы каждый столбец ссылался на элемент в массиве Values
в модели.
У кого-нибудь есть идеи? Это тоже была такая простая проблема!