我有一個通過傳遞對象列表來填充ListView的類。該類使用反射來查看每個對象的屬性以生成ListView。我怎樣才能改變ListView中一行的背景顏色。以編程方式更改ListView行的背景顏色(wpf)
這page正是我所期待的。唯一的問題是我的ListView綁定到對象列表。換句話說,ListView的每個項目都是綁定的對象,而不是ListViewItem。我假設這是我無法將ListView中的某些項目轉換爲ListViewItem的原因。例如,當我這樣做:
ListViewItem someItem = (ListViewItem)listView1.Items[0];
我得到一個InvalidCastException,因爲如果我在哪裏物理對象添加到喜歡的ListView:
listview.items.add(someObject),那麼這將工作,但因爲我將列表綁定到ListView那一行不起作用。我認爲這就是我無法施展的原因。我想轉換它的原因是因爲ListViewItem具有Background屬性。
編輯
我能夠做到這一點與第12個對象我已經試過了如下因素:
for (int i = 0; i < listView1.Items.Count; i++)
{
var lvitem = listView1.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem;
lvitem.Foreground = Brushes.Green;
}
,我得到這個錯誤:
和我也試過這個:
foreach (Tiro t in listView1.Items)
{
var lvitem = listView1.ItemContainerGenerator.ContainerFromItem(t) as ListViewItem;
if (t.numero == 0 || t.numero == 37)
{
//lvitem.Background = Brushes.Green;
lvitem.Foreground = Brushes.Green;
}
else if (t.numero % 2 == 0)
{
//lvitem.Background = Brushes.Red;
lvitem.Foreground = Brushes.Red;
}
else
{
//lvitem.Background = Brushes.Gray;
lvitem.Foreground = Brushes.Black;
}
}
,我也得到了同樣的錯誤:
我不明白爲什麼LVITEM 12迭代後爲空?
它僅與正在顯示的項目工程....
我現在可以做更多的事情了,謝謝。我雖然無法改變顏色。我會繼續嘗試。 – 2011-05-30 02:05:43
lvitem.Background = Brushes.AliceBlue;我需要使用布什而不是顏色 – 2011-05-30 02:10:41
那麼,這是有點常識。 – 2011-05-30 02:11:31