我有一個List對象和一個ListView,顯示此列表。這樣的對象有一些屬性,它們綁定到ListView的列。僅在一列中更改ListView項目的前景色
<ListView x:Name="_fileNameList" FontSize="12" SourceUpdated="_fileNameList_SourceUpdated" TargetUpdated="_fileNameList_TargetUpdated">
<ListView.View>
<GridView x:Name="FileNameAttributes" >
<GridViewColumn Header="File Name" Width="200" DisplayMemberBinding="{Binding fileName}"/>
<GridViewColumn Header="Size" Width="80" DisplayMemberBinding="{Binding size}"/>
<GridViewColumn Header="Date" Width="80" DisplayMemberBinding="{Binding date}"/>
<GridViewColumn Header="Time" Width="80" DisplayMemberBinding="{Binding time}"/>
<GridViewColumn Header="New Name" Width="300" DisplayMemberBinding="{Binding newFileName}"/>
</GridView>
</ListView.View>
</ListView>
這部分工作正常。
現在我想在單行中更改newFileName
列的前景顏色,但只有當它等於同一行中的'fileName'時。
我可以在XAML中執行此操作嗎?還是必須轉到文件後面的代碼?我想如果我可以在XAML中處理它,因爲我認爲它是一個純粹的設計問題,但我不知道,從哪裏開始或將它放在哪裏(我可以在XAML中進行字符串比較嗎? )
所以我試圖在代碼隱藏文件中處理這個問題。我認爲必須有ListView發生變化時引發的事件,我嘗試了SourceUpdated
事件,但是當我更改列表的內容時,沒有輸入它。
接下來的問題是,如何訪問這些ListView項目...
任何人都可以給我一個想法,我可以解決這個問題嗎?
我從來沒有這樣做我自己,但您可以嘗試創建自定義轉換器(如可見性轉換器)並將Foreground屬性綁定到此轉換器 – mslliviu 2012-02-17 07:39:42