| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Rebind коллекции к гриду с конвертором колонки |
| Автор: jonie 26.7.2011, 08:33 | ||
| Задача: есть INotifyPropertyChanged класс (далее INPC), экземпляр которого биндится например на TextBox.Text с использованием IValueConverter-а Вопрос: как не делая
обновить UI элемент, изменяя значение INPC класса? *) поясняю: если у нас будет биндится через конвертер, то INPC класс не сможет уведомить контрол о своем изменении, т.к. по сути "после конвертера" интерфейс INotifyPropertyChanged будет "утерян" для UI класса. UPD: ошибся в названии темы, т.к. пока писал про грид придумал более простой случай (впрочем, для грида и его колонок это тоже справедливо) |
| Автор: jonie 26.7.2011, 09:55 |
| вот тут http://marlongrech.wordpress.com/2008/08/03/my-wish-came-true-i-can-now-use-databinding-in-a-converterparameter/ что-то похожее нашел на то что мне надо... |
| Автор: jonie 26.7.2011, 11:56 | ||
| Ребят, ну это же адЪ.... Конкретезирую мою ситуацию: у меня есть некий набор DTO объектов, которые содержат помимо "полезных данных" еще и ссылки на другие DTO объекты в виде int (ссылка на ключ). Например: сотрудник и ссылка на департамент. Мне нужны DTO, т.к. я передаю их через WCF. Т.е. у меня есть классы:
У меня департаменты редко меняются - конечно, я хочу их на клиенте закешировать, что и делаю. Но при изменении имени департамента я хочу чтобы юзер автоматом во всех гридах просмотра сотрудников (гриды вида имя_сотрудника, имя_департамента) увидел обновление (не качая справочник сотрудников, т.к. он не менялся). Я как тупой эскимос исползовал IValueConverter, чтобы преобразовать DepartamentId {->Departament->} Departament.Name, а тут описанный в теме "косяк" (выделенная фигурными скобками часть у меня отсуствует в силу гридовых особенностей, где грид не может биндится на объект). Ну или подскажите как мне применить каскадный биндинг (id->object->property), чтобы вся эта штука реагировала на INPC Я нашел один неплохой (имхо) вариант - это под каждый грид такой рисовать декоратор (ака wrapper) (тоже наследний INPC), который обернет мой исходный объект, сохранит его интерфейс и добавит нужные мне свойства. |