2012-06-29 42 views
0

我有一個列表框我與高分在列表框中選中某一行

public class HighScore 
{ 
    public string Username {get;set;} 
    public int Score{get;set} 
} 

var IList<HighScore> HighScores = getAllTheScores(); 
MyListbox.ItemsSource = HighScores; 

我想改變其中有一個用戶名屬性等於在當前登錄用戶的任何行的背景顏色的設置數據源(存儲在AppSettings中)。我見過轉換器,但這需要以某種方式獲取當前登錄的用戶,這似乎不是轉換器應負責獲取的東西。

我也可以迭代列表框項目,但從我看到的不建議,我應該更喜歡綁定到鑽入控件後面的代碼。

任何建議,如何最好地實現這個大加讚賞:)

+1

除了@ShawnKendrot的答案,您可以使用DataTemplateSelector。只是另一種選擇! http://www.windowsphonegeek.com/articles/Implementing-Windows-Phone-7-DataTemplateSelector-and-CustomDataTemplateSelector –

+0

這是一個很好的解決方案,也是我現在所做的。我認爲其他答案可能是「常用」方法,但這與我目前的結構很容易吻合。 – DannyT

回答

0

兩個建議。您已經提到了第一個,即使用ValueConverter。如果可以從視圖模型訪問值(推薦),則可以輕鬆地將值傳遞給ValueConverter。如果它沒有存儲在視圖模型中,那麼只要命名正確,就不用擔心從值轉換器中獲取它。

第二個建議是使用行爲。行爲將負責根據用戶設置背景。除了後面的數值轉換器之外,我並沒有看到價值轉換器的優勢。它(幾乎)會做同樣的事情。總的來說,我會推薦一個價值轉換器易於實現,代碼開銷小,需要少量xaml。

相關問題