У меня есть ListView, который связан с коллекцией моделей представлений. Шаблон Item содержит кнопку, которая связана с командой на модели представления. Когда я устанавливаю свойство ItemSource объекта ListView, я вызываю RaiseCanExecuteChanged для каждой модели представления.
public BindingList<IVehicleViewModel> Vehicles
{
get { return _vehicles; }
set
{
if(_vehicles == value) return;
_vehicles = value;
OnPropertyChanged("Vehicles");
RaiseCanExecuteChangedEvents();
}
}
Несмотря на то, что я подтвердил, что для CanExecute возвращается значение true для всех моделей представлений, кнопка отображается серым цветом.
Единственное, что я заметил, это то, что если я вызываю RaiseCanExecuteChanged, когда просмотр списка уже отрендерен, все работает, как ожидалось, и если я вызываю его до отображения списка, а затем прокручиваю элементы, которые они сортируют.