Использование команд удобно, потому что WPF автоматически отключает источник команды (обычно кнопка), когда команда не может быть выполнена.
Очевидно, что эта функция недоступна для элементов управления, которые не являются источником команд, например ListBox
.
Каков наилучший способ включить эту функцию для некомандных источников управления. Я подумал о паре решений:
- Оберните
ListBox
с помощью Button
и измените ControlTemplate
кнопки, чтобы не было хрома.
- Создайте невидимое
Button
и свяжите свойство IsEnabled
ListBox
со свойством IsEnabled
Button
- Создать потомка
ListBox
, который реализует ICommandSource
.
Есть ли более элегантный способ?