Фокус необходим для вызова CommandBinding.CanExecute
. Поскольку при выборе элемента в ListView
фокус смещается на ListView
; оценка может произойти.
Если бы вы поместили listView.Focus();
в свой конструктор Window
, вы бы заметили, что CommandBinding.CanExecute
теперь вызывается, как и ожидалось, и, следовательно, включается, если элемент не содержится или не выбран внутри ListView
.
Перемещение привязки к Window
по-прежнему требует установки фокуса в Window
; либо с помощью явного вызова в конструкторе, либо с помощью других средств; например ... выбор элемента в ListView
или другого элемента управления в Window
, который может получить фокус.