Я смотрел на создание общего элемента управления, который я смогу повторно использовать на своих страницах: AddressControl, который имеет Address1, Address2, City, State, Zip и т.д.
Изначально я только что создал класс (AddressEntity
), содержащий все эти элементы и реализованный INotifyPropertyChanged
. Я включил этот класс в DependencyProperty в свой Code-Behind для AddressControl и использовал его как DataContext для привязки к его свойствам.
Затем, кто-то сказал, что мой код был уродлив, и я должен посмотреть в MVVM. Глядя на это, я предполагаю, что:
- AddressEntity.cs будет просто контейнером данных (т.е. Address1, Address2 и т.д.) и членами (например, Clone, ToString и т.д.).
- Мне нужен некоторый AddressViewModel для переноса моего AddressEntity и предоставления изменений PropertyNotification, Validation и т.д.
- Мне нужно каким-то образом "посмотреть" для этого.
Проблема заключается в том, что каждый пример, который я когда-либо видел, имеет UserControl как View, а не CustomControl. Прежде чем я углубится в это...
- Можно ли использовать MVVM + Custom Controls для этого примера?
- Это почти то же самое (UserControl vs CustomControl) как представление, за исключением первичных различий UserControl и CustomControl? В принципе, мой CustomControl действительно просто View?
Ссылки: Шаблон проектирования Model-View-ViewModel (MVVM) для WPF