Как определить, когда значение ячейки изменилось в Silverlight?
Я работаю в Silverlight, пытаясь выяснить, как установить цвет шрифта ячейки сетки на основе содержимого ячейки.
У меня есть ObservableCollection, привязанная к DataGrid, и мои элементы реализуют INotifyPropertyChanged, поэтому сетка обновляется при изменении значений; все работает отлично, в том числе позволяет мне сортировать элементы и продолжать сортировку, пока я обновляю базовые элементы.
Я знаю, что могу использовать событие LoadingRow для изменения цвета, но единственный способ, которым я могу получить событие, - это изменить источник данных grid, и в этом случае моя сортировка выходит за пределы окна.
Итак, что я действительно хочу, так это способ
- Зациклите строки в сетке данных, найдите нужную ячейку и измените ее цвет или
- реализовать пользовательский столбец, который я могу использовать для динамической установки цвета.
Проблема в том, как на самом деле сделать любую из этих вещей:).
1 ответ
Вы должны использовать привязку данных для этого.
- Привязать цвет шрифта вашей ячейки к содержимому ячейки
- Создайте конвертер IValueConverter, который преобразует значение в цвет в зависимости от ваших потребностей
Смотрите здесь для хорошего примера
http://weblogs.asp.net/joewrobel/archive/2009/01/25/conditional-formatting-in-the-silverlight-datagrid.aspx