Является ли привязка данных хорошим способом подключения представления к модели? - PullRequest
3 голосов
/ 26 августа 2009

Я думаю о дизайне приложения WPF или Silverlight. Я планирую использовать MVC (или другой такой шаблон проектирования)

Ведь когда-либо из выбранных мной шаблонов проектирования, мне нужно подключиться для просмотра модели (или докладчика) - является ли привязка данных хорошим способом сделать это?

(В прошлом с приложениями WinForms я обнаружил, что привязка данных в долгосрочной перспективе создает много проблем и не выполняет своих обещаний. То же самое с WPF и Siverlight?)

Ответы [ 4 ]

2 голосов
/ 26 августа 2009

Да, вы обязательно должны использовать привязку данных. В то время как WinForms и ASP.NET всегда боролись за то, чтобы связать что-либо с данными согласованно и в удобной форме, Silverlight и WPF созданы с нуля для удовольствия связывания данных.

  • Привязка двусторонняя , поэтому вам не нужно писать трудоемкий код для перемещения данных в вашу модель и из нее. Просто внедрите INotifable и все готово.
  • Конвертеры позволяют вам писать код для обработки того, как все связано, если настройки по умолчанию не работают. Используя конвертеры (которые очень просто писать), вы можете привязать логические значения к настройкам видимости, строкам к изображениям, целым числам к цветам фона и так далее. Небо это предел.
  • Шаблоны, такие как MVVM , идеально подходят для расширенной поддержки привязки данных в WPF и Silverlight. MVVM предоставляет вам лучшее из обоих миров: слабосвязанный код вместе с привязкой данных.
  • Привязка элемента позволяет привязать свойство одного элемента к свойству другого элемента. Вместе с конвертерами это дает вам впечатляющую возможность делать такие вещи, как привязка текущей позиции ползунка к выбранному индексу списка. В обе стороны.
  • Глубокая привязка означает, что вы можете привязать к свойству свойства вашей модели. Не то, чтобы вы всегда должны, но вы можете.
  • Связывание почти волшебно в своей динамической -ности. Пока ваша модель продолжает поддерживать те же свойства привязки, привязка будет работать, даже если статический тип модели изменится. Привязка тоже сумасшедшая гибкая . Вы можете привязывать к коллекциям, интерфейсам, сложным объектам (почти) все что угодно.
  • DataContexts может использоваться для настройки привязки данных на уровне страницы, элемента управления или контейнера. Затем дочерние элементы контейнера наследуют один и тот же контекст данных. Это позволяет связать один раз на уровне страницы, а затем использовать пути привязки для остальной части страницы.
1 голос
/ 15 октября 2011

Будь то WPF, Adobe Flex или Winforms, привязка данных всегда будет вызывать проблемы, когда приложение становится сложным. Я бы предпочел избежать привязки данных для облегчения отладки. Но привязка данных работает вокруг WPF, чего мы не можем избежать. Привязка данных в XAML отнимает контроль у разработчика.

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

Представьте себе, MVVM без привязки данных будет выглядеть грязно. Шаблон проектирования, использующий преимущества технологии, хорош, но дизайн, полностью зависящий от конкретной функции, является катастрофой.

1 голос
/ 26 августа 2009

Я рекомендую вам взглянуть на шаблон Model-View ViewModel (MVVM). Вот очень хорошее видео, на которое вам стоит взглянуть: Джейсон Долингер в Model-View-ViewModel . Двусторонняя привязка данных в WPF очень мощная.

0 голосов
/ 26 августа 2009

Связывание данных в WPF выходит далеко за пределы того, чего вы могли бы достичь в Winforms. Это свойственно платформе и распространено повсюду. Я бы сказал, что вы не можете понять WPF без понимания системы привязки данных.

Конечно, не без подводных камней. Сломанные привязки часто не так очевидны, как хотелось бы, но были внесены улучшения, чтобы помочь вам определить и пометить эти проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...