뷰 모델 모음에 바인딩 된 ListView가 있습니다. Item 템플릿에는 뷰 모델의 명령에 바인딩 된 단추가 포함되어 있습니다. ListView의 ItemsSource가 각 viewmodel에 대해 RaiseCanExecuteChanged를 호출하는 속성을 설정할 때. 나는 사실이 회색으로 버튼을 보여줍니다 모든 뷰 모델에 CanExecute에 대해 반환되는 것을 확인했다는 사실에도 불구하고RaiseCanExecuteChanged가 호출 된 후 ListView가 업데이트되지 않습니다.
public BindingList<IVehicleViewModel> Vehicles
{
get { return _vehicles; }
set
{
if(_vehicles == value) return;
_vehicles = value;
OnPropertyChanged("Vehicles");
RaiseCanExecuteChangedEvents();
}
}
. 내가 주목 한 유일한 점은 목록보기가 이미 렌더링 된 경우 RaiseCanExecuteChanged를 호출하면 모든 것이 예상대로 작동하고 listview가 렌더링되고 항목을 스크롤하기 전에 호출하면 호출된다는 것입니다.
CommandManager.InvalidateRequerySuggested()를 호출하는 명령을 만들었습니다. CanExecute를 전혀 호출하지 않는 것으로 보입니까? RaiseCanExecuteChangedEvents()의 Microsoft.Practices.Composite.Presentation.Commands – Russ
에서 DelegateCommand