Меня зовут Хесус из Испании, я являюсь разработчиком .NET, и я только что открыл эту замечательную сеть несколько дней назад.
У меня есть несколько вопросов о шаблоне MVVM, и я буду рад, если вы сможете на них ответить.
Я начал использовать WPF три месяца назад и изучил шаблон MVP.
MVP настолько хорош, что вы можете так хорошо структурировать приложение.
Я начал видеть MVVM везде, но каждый использует шаблон своим собственным методом.
Каждый блоггер говорит о MVVM в блогах своих WPF, но каждая реализация отличается.
Сейчас я сосредоточен на реализациях, использующих инструментарий MVVM в CodePlex, но у меня есть вопросы, и я не могу найти слишком много информации.
Я думаю, что MVVM - это вариация MVP.
С MVP у каждого представления есть презентатор, который выполняет работу представления.
В MVVM это то же самое, но с помощью команд, когда вы можете.
Я также видел, что если вам нужно событие, это похоже на MVP; делегирование события ведущему / View-Model, то есть если это не работа для представления (например, обновление пользовательского интерфейса).
С другой стороны, View-Model не имеет ссылки на View, поэтому я должен усерднее играть с привязками данных.
Вы должны использовать DelegateCommands (это то же самое, что RelayCommands, верно?).
Хм ... больше вопросов ... Безопасно ли использовать одну и ту же модель представления с двумя представлениями / пользовательскими элементами управления?
Ох ... Я столкнулся с проблемой вчера, когда играл в MVVM.
Я создал CommandReference
своей команды для привязки клавиш и назначил эту ссылку для свойства команды моей кнопки, ну, CanExecuted
сработал в первый раз, но не обновил свойство IsEnabled
, когда CanExecuted
было правдой. Я исправил это, привязав команду непосредственно к кнопке и не используя ссылку. Вопрос в следующем: почему какой-то код связывает ссылку с объектами и почему другой код связывает команду напрямую?
Какие вещи, связанные с MVVM, я должен изучить? (Вчера я видел нечто, называемое привязанным поведением, но я не знаю, что это такое).
Я переписываю приложение для заметок, которое я разработал с использованием MVP, но теперь с MVVM. Я заменю события командами (используя DelegateCommand), исключу ссылки на представления в View-Model, и я думаю, что это все, потому что примеры, которые я видел в MVVM, очень похожи на MVP.
Хорошо, я буду признателен, если вы укажете мне на все недоразумения, которые у меня есть с этим шаблоном.
Спасибо, и в будущем я помогу следующим новичкам MVVM:)