2012-06-29 3 views
0

У меня есть ListBox Я устанавливаю с источником данных изВыделите определенные строки в Listbox

рекордов
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. Если значение value доступно из viewmodel (рекомендуется), которое легко передать в ValueConverter. Если он не хранится в модели представления, тогда нет никаких проблем с получением этого из преобразователя значений при условии, что он назван правильно.

Второе предложение - использовать Поведение. Поведение будет отвечать за настройку фона на основе пользователя. Я не вижу здесь большого преимущества над конвертером значений, за исключением того, что он не является конвертером значений. Это будет (почти) делать то же самое. В целом я бы рекомендовал конвертер значений. Простота в использовании, низкие накладные расходы и небольшой xaml.

Смежные вопросы