Как определить, когда значение ячейки изменилось в Silverlight?

Я работаю в Silverlight, пытаясь выяснить, как установить цвет шрифта ячейки сетки на основе содержимого ячейки.

У меня есть ObservableCollection, привязанная к DataGrid, и мои элементы реализуют INotifyPropertyChanged, поэтому сетка обновляется при изменении значений; все работает отлично, в том числе позволяет мне сортировать элементы и продолжать сортировку, пока я обновляю базовые элементы.

Я знаю, что могу использовать событие LoadingRow для изменения цвета, но единственный способ, которым я могу получить событие, - это изменить источник данных grid, и в этом случае моя сортировка выходит за пределы окна.

Итак, что я действительно хочу, так это способ

  1. Зациклите строки в сетке данных, найдите нужную ячейку и измените ее цвет или
  2. реализовать пользовательский столбец, который я могу использовать для динамической установки цвета.

Проблема в том, как на самом деле сделать любую из этих вещей:).

1 ответ

Решение

Вы должны использовать привязку данных для этого.

  1. Привязать цвет шрифта вашей ячейки к содержимому ячейки
  2. Создайте конвертер IValueConverter, который преобразует значение в цвет в зависимости от ваших потребностей

Смотрите здесь для хорошего примера
http://weblogs.asp.net/joewrobel/archive/2009/01/25/conditional-formatting-in-the-silverlight-datagrid.aspx

Другие вопросы по тегам