| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > WPF и Silverlight > Показ неявно ссылаемого объекта в SL\WPF |
| Автор: jonie 15.12.2009, 20:22 | ||||
Пусть существует два DTO:
Как в разметке я могу (или не могу?) используя Binding и имея DataContext равным ссылкой на экземпляр А, вывести данные класса B. Я придумал только вариант использования TypeConverter-а в виде
|
| Автор: tol05 15.12.2009, 23:11 |
| А где здесь хоть какая-нибудь связь между классами A и B? И где здесь DTO? |
| Автор: jonie 15.12.2009, 23:17 |
| A и B DTO-шные классы. Разве нет? ссылка "неявная" (если так можно назвать) по полю bRefId (я думаю это понятно) (Связь 1-1 классическая). в TypeConverter-е я могу сделать нечто вроде : ctx.B.Where(x=>x.Id == value).First(); Дело в том что такая надобность возникла в ходе работы с EF-ком, который очень не любит циклические ссылки, а подобные DTO классы генерирует WCF RIA Services. |
| Автор: tol05 16.12.2009, 00:49 | ||||
после того, как был упомянут LINQ - возможно да ). Но до того.. какой-то класс с единственным полем - и догадаться, что это EF DTO... не смог Одним словом...у меня получилось "сплясать" так
|
| Автор: jonie 16.12.2009, 00:53 | ||
tol05, хех, у тебя явная ссылка есть на B в классе А. Так все умеют (можно быо Path=B.Description прописать просто без смены контекста у элемента). У меня же ссылки нет, есть только ID объекта, и коллекция, из которой этот объект надо вытянуть (найти) по ID. |
| Автор: tol05 16.12.2009, 01:47 |
| тогда не знаю ) даже если предположить, что можно использовать Notifications при изменении одного ID на другой (чтобы вытянуть новые данные по этому ID из коллекции)... Не вижу в этом выигрыша по сравнению с написанием конвертеров. Кстати, конвертеры - часто предлагаемый аппроач, также... отчего же? а при помощи чего LINQ данные переносит из источника? |
| Автор: jonie 16.12.2009, 23:45 | ||||||
вот такой придумал (наткнулся в одной либе) способ: сделать TypeConverter для Funct<object, object, object>
суть в том, что теперь можно делать нормальнй байдинг на функцию фактически.... т.о. не надо под каждый такой ID рисовать конвертер (хотя это спорный метод с т.з. понятности)... Добавлено через 53 секунды
|