У меня много проблем с поиском хорошего примера того, как программно создать, заполнить и оформить ListView.Каждый пример, который я нахожу, имеет тенденцию использовать много разметки XAML и минимальное количество C # для переключения, какой бит разметки выполняется.Это невозможно для меня, так как я не знаю ни составов столбцов, ни предполагаемых стилей во время компиляции.
То, что мне нужно, довольно тривиально - ListView, где будет определенная ячейка для данной строкикрасный, если значение отрицательное, или черный значения положительный.Однако какая это строка и какие это будут цвета, неизвестно до времени выполнения (достаточно динамического / программного примера).
То, что у меня есть (упрощенно), выглядит примерно так:
string[] columns = new string[] { "Test", "Test2" };
ListView lv = new ListView();
/* Add Columns (works */
GridView viewLayout = new GridView();
foreach (string colName in columns)
{
viewLayout.Columns.Add(new GridViewColumn{ Header = colName });
}
lv.View = viewLayout;
/* Add Items (happy to go the .source path if it's easier) */
foreach (object d in GetData())
{
lv.Items.Add(d);
}
/* Example style, fails */
lv.ItemContainerStyle.Setters.Add(
new Setter(Control.BackgroundProperty, *how do you connect the IValueConverter*)
);