Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=7333997&src=arc&showlite=l
Дата изменения: Unknown
Дата индексирования: Tue Feb 26 22:03:18 2013
Кодировка: Windows-1251
WPF databinding - Public forum of MSU united student networks
Technical >> Development (Archive)

Страницы: 0 | (9) | 20 | показать все
ais : Re: WPF databinding  [re:Shurik]   19.03.2008 22:59    | Reply | Edit |
-1
В ответ на:

или не понятно конкретно то, что ты выделил?



То что выделил.
 
В ответ на:

но в WPF слишком много кода для такого простого случая.
  



Ты один раз напишешь конвертер и можеш его использовать в десяти местах, а используя входящие параметры можно вообще написать набор конвертеров на все случаи жизни.

dimich   [re:ais]   19.03.2008 23:53    | Reply | Edit |
0
правильно, и делай эти конверторы дружелюбными к XAML, чтобы создавать конкретные их экземпляры декларативно

Shurik   [re:dimich]   20.03.2008 00:10    | Reply | Edit |
0
Quote:


Напиши свою библиотеку конверторов.




Quote:


Ты один раз напишешь конвертер и можеш его использовать в десяти местах, а используя входящие параметры можно вообще написать набор конвертеров на все случаи жизни.




ребят, просто ЛОЛ :grin: , вы что издеваетесь. Будет время напишу, что своя библиотека, к тому же, конвертеров это плохо.

Shurik   [re:dimich]   20.03.2008 00:12    | Reply | Edit |
0
Quote:

и делай эти конверторы дружелюбными к XAML, чтобы создавать конкретные их экземпляры декларативно



тк объясни что ж вас так притягивает "декларативно" на XAML-е? я там в первом посте спрашивал об этом.

Shurik   [re:Shurik]   20.03.2008 00:14    | Reply | Edit |
0
замечу, что я выступаю не за то, чтобы все кодом на C# писать. Я за разумный баланс. WPF на мой взгляд начала злоупотреблять XMAL-ом.

Orient   [re:Shurik]   20.03.2008 00:15    | Reply | Edit |
0
Сделай свойство FirstNameInUpper и биндись к нему


Shurik   [re:Orient]   20.03.2008 00:17    | Reply | Edit |
0
Quote:

Сделай свойство FirstNameInUpper и биндись к нему



да, я вот как раз ехал в метро, и думал над тем, может все "расчеты" надо засовывать в бизнес-объекты. Но пока я не пришол к окончательному выводу, правильно ли это.

Orient   [re:Shurik]   20.03.2008 00:26    | Reply | Edit |
0
Да, меня в БО это засовывать тоже не очень прельщает, но пока ничего лучшего не придумал.

Можно сделать класс PersonForGui, который в конструкторе берет исходного Person и выставляет свойства, предназначенные именно для биндинга.
Обернуть таким образом все бизнес-объекты.
Тут могут возникнуть небольшие заморочки с коллекциями.

Вообще, тут бы кодогенерация неплохо пошла, как и для объектов, мапленных на БД и объектов DTO для передачи меж App-доменами. Они часто очень похожие, но все-таки разные

Еще в GUI пользователи <почему-то> не хотят видеть имя колонки в гриде "PersonNameInUpper", а хотят "User name".


Shurik   [re:Shurik]   20.03.2008 14:59    | Reply | Edit |
0
случайно наткнулся на статью, где автор тоже понимает суть проблемы. в конце он там предлагает анализировать IL код :D
http://www.codeproject.com/KB/WPF/wpfdatabinding.aspx

P.S. в конце страничке оказалось, что автор из России :)

dimich   [re:Orient]   20.03.2008 17:50    | Reply | Edit |
0
Quote:

Да, меня в БО это засовывать тоже не очень прельщает, но пока ничего лучшего не придумал.Можно сделать класс PersonForGui, который в конструкторе берет исходного Person и выставляет свойства, предназначенные именно для биндинга.Обернуть таким образом все бизнес-объекты.Тут могут возникнуть небольшие заморочки с коллекциями.Вообще, тут бы кодогенерация неплохо пошла, как и для объектов, мапленных на БД и объектов DTO для передачи меж App-доменами. Они часто очень похожие, но все-таки разныеЕще в GUI пользователи <почему-то> не хотят видеть имя колонки в гриде "PersonNameInUpper", а хотят "User name".




похоже на Model-View-ViewModel паттерн, который как раз заточен под WPF binding, насколько я понимаю.

Shurik   [re:dimich]   20.03.2008 19:35    | Reply | Edit |
0
Quote:

Model-View-ViewModel паттерн



да главное придумать название паттерну, и все само сделается :grin: .
Статья малоинформативная, суть можно было изложить в двух преложениях:
XAML то вроде у нас для дизайнеров. Кодеры наваяли бизнес-правила в бизнес- объектах :smirk: И тут неожиданно выясняется, что прога то не работает, оказывается, что еще что-то надо. А что это что-то? И где его место? Не долго думая вводим еще один уровень. Над названием нам тоже лень думать, поэтому остановимся на комбинации слов ViewModel :grin: А уж примеры кода сами напишите...

dimich   [re:Shurik]   21.03.2008 11:45    | Reply | Edit |
0
ну зачем же так злобно

вообще идея простая - для программиста код ГУИ заканчивается на ViewModel, а XAML уже дело техники (с дизайнером или без - не так важно). Главное, связка ViewModel-XAML-GUI получается тонкой, там уже тестировать нечего, декларативное описание databinding лучше всяких юнит тестов (все остальное за тебя в Майкрософт протестировали).

Top