Обратная связь при асинхронной загрузке данных - PullRequest
1 голос
/ 09 декабря 2011

У меня есть ComboBox, у которого ItemsSource связан с ObjectDataProvider, для свойства IsAsynchronous которого установлено значение true. Внутри метода, который загружает данные, я поместил Wait на 10 секунд, чтобы имитировать длительное время загрузки этих данных.

Асинхронная загрузка работает отлично - все окно по-прежнему реагирует, и через 10 секунд я вижу заполненный выпадающий список ComboBox.

Я хотел бы предупредить пользователя, что этот конкретный ComboBox загружает данные в течение этого 10-секундного времени ожидания. Что-то вроде progressBar в фоновом режиме элемента управления, который включается только тогда, когда определенное свойство isLoading или что-либо еще установлено в true. Возможно ли это сделать?

Спасибо.

Ответы [ 2 ]

6 голосов
/ 09 декабря 2011

похоже, что Приоритетное связывание может быть решением для вас

<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>

enter image description here

вот хорошее руководство для Приоритетного связыванияhttp://www.switchonthecode.com/tutorials/wpf-tutorial-priority-bindings

или посмотрите на MSDNhttp://msdn.microsoft.com/en-us/library/system.windows.data.prioritybinding.aspx

надеюсь, это поможет

0 голосов
/ 09 декабря 2011

Не похоже, что ObjectDataProvider имеет какие-либо свойства, позволяющие определить, когда он находится и не извлекает данные.

Это зависит от вашей архитектуры, но вы можете предоставить свойства, которые дают «состояние загрузки» вашему объекту, который содержит метод, который загружает данные. Затем вы можете привязать индикатор выполнения или другой пользовательский интерфейс типа «Пожалуйста, подождите ...» к этому новому состоянию состояния.

...