2012-09-15 144 views
1

我有以下ListView設置的ListView行背景

<ListView> 
    <ListView.View> 
     <GridView/> 
    </ListView.View> 
</ListView> 

我想以編程方式設置第二行(例如)的背景爲紅色。 我該怎麼辦? 謝謝。

+0

檢查此鏈接。 http://stackoverflow.com/questions/6171502/change-background-color-of-listview-row-programmatically-wpf 感謝 普拉迪普 – pordi

+0

@PradipTripathy我看到了,謝謝你,但是這並沒有回答我題。 – Nick

回答

3

您可以使用類似的方法:

int index = 1; 
ListViewItem row = ListView.ItemContainerGenerator.ContainerFromIndex(index) as ListViewItem; 
row.BackGround = Brushes.Red; 
+0

謝謝,這有助於很多! – Nick

-1

請在這裏澄清一件事尼克。你能告訴我你是否想讓第二排的顏色變成紅色。如果是這種情況,您可以遍歷列表視圖,然後在頂部保留一個計數變量,然後當count == 1時,您可以將列表view.background顏色更改爲紅色。如果你試過這個,那麼你能告訴我發生了什麼事。它是以錯誤還是什麼或什麼都沒有發生而告終。

+0

如果有效,請告訴我代碼。 – Nick

2

可以使用AlternationCount到該行的索引存儲在AlternationIndex,然後使用觸發器來設置所述第二行的背景(索引1)爲紅色:

<ListView AlternationCount="{x:Static sys:Int32.MaxValue}"> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Style.Triggers> 
       <Trigger Property="ItemsControl.AlternationIndex" Value="1"> 
        <Setter Property="Background" Value="Red" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ListView.ItemContainerStyle> 
    ... 
</ListView> 

AlternationCount定義數在重新啓動到零之前要計數的行數。例如,如果設置爲2,則行的索引將爲0 1 0 1 0 1 ...,從而允許您僅繪製紅色的奇數行或偶數行。將它設置爲MaxValue將永遠不會重新啓動計數,實際將AlternationIndex設置爲實際索引。

+0

我想改變不在XAML中的背景,但動態地(c#),「第二」行只是例如。 – Nick