Я испытываю много затруднений, находящих хороший пример того, как программно создать, заполнить и разработать ListView. Каждый пример, который я нахожу, имеет тенденцию использовать много разметки XAML и минимальное количество C# для переключения, какой бит разметки выполняется. Это невозможно для меня, поскольку я не знаю состава столбцов, ни намеченных стилей, во время компиляции.
То, в чем я нуждаюсь, довольно тривиально - ListView, где конкретная ячейка для данной строки будет красной, если величина будет отрицательной, или черной из значения, положительно. Однако, которые располагают в ряд, это и что окрашивает, это будет, не известны до времени выполнения (пример, который является dynamic/programatic, будет достаточен).
То, что я (упростил), является чем-то вроде этого:
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*)
);
Используйте привязку, установите свойство Converter;)
new Binding() { Converter = new MyAwesomeConverter() }