Пользовательское окно продолжает обрастать функционалом
В этот субботний день, который у мен не был слишком затяжным, я продолжил работу над контролом пользовательского окна. Добавил новые возможности. Теперь аналогичный контрол в предыдущей версии программы - отстой. Как и многие другие контролы. Вот ведь беспощаден прогресс - он ломает, делает бестолковыми и посыпает дустом все прежние достижения.
Раньше было как. Для диалоговых окон я использовал пользовательское окно и контрол диалогов, который встраивался поверх этого окна. Оно кое-как работало, но было это бестолково сделано. Не было клавиатурной навигации по кнопкам диалога. То есть нажимая на стрелки теперь можно менять кнопку фокусировки - эта кнопка становится активной. А когда кнопка становится активной, то при нажатии на другую клавишу можно активировать команду, привязанную к этой кнопке.
Но тут не обошлось без неприятных сюрпризов от Авалонии. Не знаю баг это или не баг, но в обработчике события для нажатия клавиш клавиатуры не всегда срабатывает клавиша "Enter". Какая-то там странная логика: при одном сочетании кнопок в диалоге эта клавиша срабатывает в обработчике, а при другом - нет. Тут уж я ничего не могу поделать. Только назначить альтернативную клавишу для доступа к команде кнопки. Так что вот такие пироги.
Ну а с сохранением и восстановлением значений свойств модели-представления я разобрался, работает всё нормально. Ну вот пока на этом и всё. Дальше буду делать из общего окна все необходимые диалоговые окна. А потом встраивать эти диалоги туда, где они нужны. В том числе и в контроле самого пользовательского окна. Ну а после чего я уже буду "запиливать" валидацию данных заданных свойств модели-представления перед вызовом главной команды диалоговых окон. Ну и под конец меня ждет эпопея по созданию ленточного интерфейса окна. То есть ленту с контролами. Надеюсь, что это не займёт у меня больше, чем три дня. Ну а пока на этом всё и до новых свершений!

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.