Как программно добавить обязательный преобразователь к WPF ListView?

Я испытываю много затруднений, находящих хороший пример того, как программно создать, заполнить и разработать 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*)
);
8
задан Matt Mitchell 7 July 2010 в 09:03
поделиться