Могу ли я подавить вызов «Canexecute» в рамках шаблона MVVM
-
29-09-2019 - |
Вопрос
Я работаю с древесной структурой с использованием WPF и шаблон MVVM. Я начинаю, создавая 20 корневых узлов и ленивую загрузку дочерних узлов, поскольку каждый узел нажат. Так, например, ... если у меня есть следующее:
Level 1
Level 1.1
Level 2
Level 3
Level 3.1
Level 3.2
Уровни 1, 2 и 3 загружаются во время выполнения. Уровни 1.1, 3.1 и 3.2 не будут загружены, пока их соответствующие родители нажимаются. Уровни ниже 1,1 и т. Д. Одинакочны, нажав на их родитель.
Моя проблема заключается в том, что когда я нажимаю на уровень 1.1, чтобы загрузить своих детей, метод «Canexecute» проверяется на уровне 1.1 и все элементы корневого уровня для каждого ребенка уровня 1.1. Это вызывает довольно много времени впустую, если есть много детей.
Мой вопрос в том, могу ли я как-то подавить звонок к «Canexecute»? Мне не нужно назвать это этими поднимитами, и я хотел бы обходить его. Я очень новичок в рамках MVVM, поэтому я не уверен, что это даже возможно.
Решение
Если вы используете призму (композитное руководство по приложению для WPF и Silverlight) «DelegateCommand» в модели вашего представления, вам придется явный звонок команда.