Управление не обновляется после того, как CanExecute-результат действительно изменяется

Я думаю, что термин шаблон проектирования был ошибочно использован вашим интервьюером вместо термина идиома .

Основная проблема с вашим кодом (и может быть причиной отклонения) - обработка памяти с использованием классических идиом c ++:

  • использование умных указателей для управления временем жизни ваши заметки
  • правило 3 (или 5) для обработки копирования / назначения (/ перемещения) вашего StoryBoard объекта

Обратите внимание, что используются умные указатели это только один способ управления памятью. Вы также можете использовать другие идиомы:

  • арена заметок и ссылки на заметки с арены внутри ваших хэш-карт
  • ...

Как только эта проблема решена, у вас есть незначительные проблемы:

  • возвращая указатели вместо ссылок, StoryBoard является владельцем памяти, вы не должны возвращать указатель, который звонящий мог случайно освободиться.
  • нет доступа к const (возврат константных ссылок)
  • повторяющийся код, который может быть учтен

Если я не ошибаюсь в интерпретации сказанного интервьюером, этот вопрос следует перенести codereview.stackexhange.com

5
задан TalkingCode 19 March 2009 в 14:59
поделиться

1 ответ

Хорошо, я узнал меня.

canSaveXML = true;
CommandManager.InvalidateRequerySuggested();

был код во второстепенном рабочем.Не очень. Необходимо сказать диспетчеру окна вызывать CommandManager. InvalidateRequerySuggested ();

9
ответ дан 14 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: