ViewModel의 ObservableCollection에 바인딩 된 ItemsControl이 내 View에 있습니다. 컬렉션이 채워진 후 VM에서 볼 수있는 이벤트가 발생합니다 (검색 결과 및 SearchFinished 이벤트 생각).WPF ItemsControl - 항목로드가 완료된 시점을 파악하여 첫 번째 항목에 집중할 수있는 방법은 무엇입니까?
키보드 포커스를 ItemsControl의 첫 번째 항목으로 이동하고 싶습니다.하지만 SearchFinished를 처리 할 때 View의 코드 숨김에서 항목을 아직 렌더링하지 않았습니다 (컬렉션은 이미 채워졌지만 wpf의 렌더링은 비동기이며 아직 발생하지 않았습니다.) 그래서 초점을 맞추는 것이 없습니다 (Focus()는 항목의 시각적 트리를 이미 생성해야합니다).
(myItemsControl.ItemContainerGenerator.ContainerFromIndex (0) as UIElement) .Focus();하지만 0 번째 항목이 아직로드되지 않았으므로 ContainerFromIndex (0)은 null을 반환합니다.
낮은 우선 순위로 Dispatcher.BeginInvoke ...를 사용하여 지연을 시도했지만 정확한 타이밍에 의존하며 일반적으로 작동하지 않습니다.
ItemsControl의 첫 번째 항목이로드 될 때까지 어떻게 기다릴 수 있습니까?
감사합니다. 완벽하게 작동합니다. –