2011-12-09 2 views
1

IsAsynchronous 속성이 true로 설정된 ObjectDataProvider에 ItemsSource가 바인딩 된 ComboBox가 있습니다. 데이터를로드하는 메서드 내에서이 데이터의로드 시간을 길게 시뮬레이트하기 위해 10 초 동안 대기합니다.데이터를 비동기 적으로로드 할 때의 피드백

비동기 적재가 잘 작동합니다. 전체 창은 여전히 ​​반응하며 10 초 후에 ComboBox 드롭 다운이 표시됩니다.

이 특정 ComboBox가 10 초 대기 시간 동안 데이터를로드 중임을 사용자에게 경고하고 싶습니다. 뭔가 'isLoading'속성이나 true로 설정되어있는 동안에 만 활성화되는 컨트롤 배경의 progressBar와 같은 것입니다. 이것을 성취 할 수 있습니까?

감사합니다.

답변

6
+0

이것은 훌륭합니다! 전에는 이것을 보지 못했습니다. 감사. – user981225

+0

답변을 독자적으로 만들어보십시오. 사이트 외부 링크는 유용 할 수 있지만 죽어가는 경향이 있습니다. 사이트 외부로 링크하면 공식 문서가 충분하고, 임의의 블로그보다 선호됩니다. 공식 문서는 사라 졌을 것입니다. ['PriorityBinding'] (http://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding.aspx) –

0

ObjectDataProvider에는 데이터를 검색하거나 검색하지 않는 속성이 없습니다.

아키텍처에 따라 다르지만 데이터를로드하는 메서드가 포함 된 개체에 "로드 상태"를 제공하는 속성을 노출 할 수 있습니다. 그런 다음 새 상태 속성에 진행률 표시 줄이나 다른 "기다려주십시오 ..."종류의 UI를 바인딩 할 수 있습니다. 우선 순위가 여기

enter image description here

<ListBox> 
    <ListBox.ItemsSource> 
    <PriorityBinding> 
     <!-- highest priority sources are first in the list --> 
     <Binding Path="LongLoadingCollection" IsAsync="True" /> 
     <!-- this contains only one item like "loading data..." --> 
     <Binding Path="LoadMessage" IsAsync="True" /> 
    </PriorityBinding> 
    </ListBox.ItemsSource> 
</ListBox> 
이 우선 순위 바인딩
http://www.switchonthecode.com/tutorials/wpf-tutorial-priority-bindings

또는 MSDN
을 살펴에 대한 좋은 튜토리얼 당신을위한 해결책이 될 수 바인딩처럼

관련 문제