У меня возникли проблемы с попыткой получить событие click для запуска после выполнения команды. Я стараюсь следовать стилю разработки MVVM.Кнопка C# Нажмите кнопку «События» после команды
Вот сценарий:
В моем приложении у меня есть сетка 2 по N кнопок, где N представляет собой динамически загружен набор кнопок (иногда это будет 2 х 2, иногда его 5 х 9 , Я не знаю). Первоначально все столбцы кнопок будут скрыты, за исключением первого столбца. При щелчке по первому столбцу выполняется выполнение команды, и воспроизведение анимации в анимации отображается и отображает определенные кнопки из второго столбца, в зависимости от того, какая кнопка была нажата в первом столбце. Например, нажатие верхней кнопки в первом столбце откроет первые четыре кнопки во втором столбце, тогда как нижняя кнопка в первом столбце откроет первые три кнопки во втором столбце.
Вот проблема:
Для каждой кнопки я поставил CommandParameter к каждой из кнопок в первой колонке. Когда команда запускается, данные обрабатываются, и в VM устанавливается свойство, в котором указывается, какая кнопка была нажата (я просто снова использую CommandParameter). Пока данные обрабатываются, я хочу отобразить следующий набор кнопок для пользователя. У меня есть событие click, которое берет CommandParameter из виртуальной машины и воспроизводит анимацию, чтобы показать правильные кнопки.
Однако проблема заключается в том, что WPF любит делать событие Click перед тем, как увольняется команда. Это проблема, поскольку свойство в VM, которое говорит, что нажата кнопка, не устанавливается!
Так что приносит мне пару вопросов ...
1) Есть ли способ, чтобы выполнить команду перед обжигом события?
2) Я делаю это правильно? : P
Я попытался изменить все, чтобы использовать datatriggers и запускать привязку данных, а также пытаться переключить все на XAML. Проблема, с которой я сталкиваюсь, заключается в том, что все мои кнопки, которые я загружаю, выполняются программно, потому что 1) они динамически загружаются фоновым рабочим (это требуется, потому что мне нужно его асинхронно загружать и изображение кнопки загружается через Интернет) и 2) позиционирование кнопок выполняется в viewport3d с использованием Viewport2DVisual3D, случайно рассчитанного с использованием Random(). Есть ли способ сделать это только с помощью XAML и viewmodel? –