Я разрабатываю приложение WPF в MVVM Patern. Приложение имеет панель команд и кнопки для сохранения и удаления записей.WPF MVVM Выполнение различных действий на основе сфокусированного объекта
Приложение также имеет Master Detail форму. Это пользовательский элемент управления и DataGrid.
Мастер блок: Заказ клиента
Подробный блок: заказ клиента Линии
(один ко многим отношений).
Проблема:
При нажатии кнопки в командной строке, различные действия должны быть выполнены в зависимости от сфокусированного элемента.
Для примера, если я нажму на кнопку Удалить
Он должен удалить записи только в DataGrid строке, когда DataGrid имеет фокус и ряд (ы) выбранного. . Удалить метод DeleteRows().
Он должен удалить всю запись, если основной блок имеет фокус, а не фокус с привязкой данных. . Удалить метод DeleteRecord().
Насколько я знаю, я могу достичь этого с помощью фокуса клавиатуры и логического фокус-менеджера. Но я не смог найти правильное решение. Я должен учитывать, что при нажатии кнопки удаления я должен игнорировать фокус кнопки «Удалить».
Пожалуйста, помогите мне преодолеть эту проблему с помощью примерного кода.
Просто мысль: вы уверены, что это будет хорошо спроектированный пользовательский интерфейс? Поведение, которое вы описали, похоже, не настолько прозрачно и интуитивно понятно для пользователя. – dymanoid
Я считаю, что это удобный дизайн для приложения, управляемого данными. Я видел, что некоторые коммерческие приложения ERP имеют такую функциональность. – Rahul
Ну, тот факт, что это уже реализовано где-то, не означает, что это хорошее решение. Я бы очень сговорился, если одна кнопка ** Удалить ** в командной строке удалит данные в зависимости от того, где курсор клавиатуры мигает ... В любом случае, это зависит от вас. – dymanoid