2010-05-23 2 views
1

Я изучаю WPF с MVVM и для стартера, я просмотрел видео Джейсона Долинджера на MVVM. В нем он упомянул, что одним из преимуществ использования MVVM с WPF является двусторонняя привязка данных. Мой вопрос в том, что он подразумевает под двусторонней привязкой данных? Является ли это особенностью способности: 1) связывать данные с элементами управления (вид) с свойствами в VM и 2) любое изменение в коллекциях или свойствах отражается в представлении? Если я ошибаюсь, может кто-нибудь объяснить мне подробно, что это такое и каковы его преимущества? Это может быть очень простое сомнение, но я очень новичок в WPF и это терминология и теперь уходит от WinForms.Что такое двухсторонняя привязка данных в WPF?

ответ

3

Вы не ошибаетесь. Это значение имеет двухстороннее связывание данных.
У вас есть вид, связанный с его ViewModel, поэтому каждое изменение, которое вы делаете в одном из них, отражается на другом.
Чтобы получить такое поведение, вы должны реализовать интерфейс INotifyPropertyChange в своей модели ViewModel или использовать свойства зависимостей вместо обычных свойств CLR.
Вы также можете использовать другие типы привязки данных, например, в один конец или один путь к источнику. Однако значение по умолчанию является двусторонним.
Надеюсь, что это поможет. С уважением

+1

Приятно слышать, что я почти прав. Другой вопрос заключается в том, что M-V-VM трудно реализовать без WPF? Например, WPF и M-V-VM жестко связаны? Я спрашиваю об этом, потому что до даты я не нашел реализацию для M-V-VM без WPF/SL. – blntechie

+3

Собственно, тип привязки по умолчанию зависит от свойства зависимостей. И по сути, по умолчанию для свойств зависимостей является OneWay, но некоторые элементы управления WPF переопределили это как TwoWay для некоторых своих свойств (например, TextBox.Text). –

+0

Шаблон MVVM на самом деле является результатом развития разработчиков, которые участвуют в эффективном использовании замечательной надежной и всепроникающей технологии привязки данных WPF, поэтому маловероятно, что вы столкнетесь с ней в любом другом контексте. –

0

Общая идея заключается в том, что в DataContext отражены не только изменения в пользовательском интерфейсе, но также изменения в пользовательском интерфейсе возвращаются в DataContext.

Итак, вы правы :)

 Смежные вопросы

  • Нет связанных вопросов^_^