Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Rebind коллекции к гриду с конвертором колонки 
:(
    Опции темы
jonie
Дата 26.7.2011, 08:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



Задача: есть INotifyPropertyChanged класс (далее INPC), экземпляр которого биндится например на TextBox.Text с использованием IValueConverter-а
Вопрос: как не делая 
Код

BindingOperations.GetBindingExpressionBase(myTextboxInstance, TextBox.TextProperty).UpdateTarget();

обновить UI элемент, изменяя значение INPC класса?

*) поясняю: если у нас будет биндится через конвертер, то INPC класс не сможет уведомить контрол о своем изменении, т.к. по сути "после конвертера" интерфейс INotifyPropertyChanged будет "утерян" для UI класса.

UPD: ошибся в названии темы, т.к. пока писал про грид придумал более простой случай (впрочем, для грида и его колонок это тоже справедливо)

Это сообщение отредактировал(а) jonie - 26.7.2011, 08:34


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
jonie
Дата 26.7.2011, 09:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



вот тут http://marlongrech.wordpress.com/2008/08/0...erterparameter/
что-то похожее нашел на то что мне надо...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
jonie
Дата 26.7.2011, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



Ребят, ну это же адЪ....

Конкретезирую мою ситуацию: у меня есть некий набор DTO объектов, которые содержат помимо "полезных данных" еще и ссылки на другие DTO объекты в виде int (ссылка на ключ). Например: сотрудник и ссылка на департамент. Мне нужны DTO, т.к. я передаю их через WCF. Т.е. у меня есть классы:
Код

//я не указываю, но использую вызов PropertyChanged в set-свойствах
class Emp : INotifyPropertyChanged
{
 public string Name {get;set;}
 public int DepartamentId {get;set;} //FK departament
...
}

class Departament : INotifyPropertyChanged
{
 public int DepartamentId {get;set;}  //key
 public string Name {get;set;}
}

У меня департаменты редко меняются - конечно, я хочу их на клиенте закешировать, что и делаю.
Но при изменении имени департамента я хочу чтобы юзер автоматом во всех гридах просмотра сотрудников (гриды вида имя_сотрудника, имя_департамента) увидел обновление (не качая справочник сотрудников, т.к. он не менялся).

Я как тупой эскимос исползовал IValueConverter, чтобы преобразовать DepartamentId {->Departament->} Departament.Name, а тут описанный в теме "косяк" (выделенная фигурными скобками часть у меня отсуствует в силу гридовых особенностей, где грид не может биндится на объект).

Ну или подскажите как мне применить каскадный биндинг (id->object->property), чтобы вся эта штука реагировала на INPC

Я нашел один неплохой (имхо) вариант - это под каждый грид такой рисовать декоратор (ака wrapper) (тоже наследний INPC), который обернет мой исходный объект, сохранит его интерфейс  и добавит нужные мне свойства.

Это сообщение отредактировал(а) jonie - 26.7.2011, 11:59


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0775 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.