mvvm-light: Должны ли мы объединить методы очистки в локаторе? - PullRequest
3 голосов
/ 02 июня 2010

при создании новой ViewModel в классе локатора с использованием сниппета, он создает метод очистки, но он уже доступен из Main, поэтому возникает ошибка ....

Должны ли мы объединить их всех?

Или мы должны переименовать метод, например, в Cleanup [Name of viewmodel].

Я немного запутался здесь

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

Я пытался следовать соглашению об именах, используемому с "MAIN" ...

следовательно, у меня есть CreateLogin, ClearLogin, Логин (нестатическое свойство для привязки) и т. Д. И т. Д.

Не лучше ли использовать CreateLoginViewModel, ClearLoginViewModel и т. Д. ??

Просто любопытно

Спасибо

1 Ответ

4 голосов
/ 04 июня 2010

Этот фрагмент (и ViewModelLocator в целом) нуждается в работе, и это будет серьезное изменение в V4.

Да, целью было объединить метод очистки, сгенерированный фрагментом, с уже доступным. Идея состоит в том, что вы можете просто вызвать ViewModelLocator.Cleanup () и очистить все виртуальные машины (например, сохранить свое состояние в локальном хранилище, закрыть потоки и т. Д.). Поскольку фрагмент не может изменить существующий метод, я решил просто продублировать метод очистки. Он не скомпилируется, поэтому разработчик должен знать, чтобы объединить их.

Тем не менее, неудовлетворительно иметь CreateMain, ClearMain и т. Д. Для каждого типа виртуальной машины. Я думаю, что мы все согласны с тем, что это слабая реализация, и я хочу улучшить ее, предоставив в будущем универсальный ViewModelLocator (V4).

Что касается соглашений об именах, то это просто соглашения. Я устал набирать «ViewModel», но не стесняйтесь использовать свое собственное соглашение. Как я уже сказал, фрагмент больше не понадобится в V4. Приносим извинения за доставленные неудобства;) (обратите внимание, что вы можете легко изменить фрагмент, если хотите)

Ура, Laurent

...