MVVM Light - отправка уведомления для кода - PullRequest
3 голосов
/ 07 ноября 2010

У меня есть первое приложение MVVM Light, и я был очень хорош и ничего не добавил в код. По соображениям производительности используемому элементу управления диаграммой требуется вызов, чтобы отключить его обновление, а затем снова включить его после обновления серии диаграмм. Поэтому мне нужно вызвать метод для элемента управления из ViewModel.

Теперь я могу сделать все это с помощью подхода «большего молотка», передав ссылку на элемент управления диаграммы в ViewModel через метод MainStatic локатора. Я ловлю себя на том, что думаю, что на самом деле это не так, как это должно быть, и я пытаюсь сделать все «по-MVVM». Может ли какой-нибудь гуру MVVM Light показать мне путь? Все, что я нашел, это возиться с людьми, посылающими команды из кода в ViewModel ... Мне нужно пойти другим путем ... или, по крайней мере, я так думаю ...; -)

1 Ответ

2 голосов
/ 08 ноября 2010

Переключатель «update» должен был быть выставлен через связываемое свойство, а не нуждаться в вызовах функций. Затем вы просто включаете и выключаете его через привязку к свойству модели представления.

Поскольку это, очевидно, не тот случай, возможно, вам следует обернуть элемент управления диаграммой в свой собственный пользовательский элемент управления или подкласс его (немного сложнее). Затем вы можете предоставить любые свойства, которые вам нужны (включая свойство «Обновление», чей установщик вызывает методы обновления).

Лично у меня нет никаких сомнений в использовании не-MVVM-методов (т. Е. Кода сзади) в базовых пользовательских элементах управления, поскольку они должны рассматриваться скорее как сторонние элементы управления, чем как часть вашего приложения. Обертывание или подклассификация существующих элементов управления просто приводит к созданию лучшей библиотеки повторно используемых компонентов.

...