Реализация виртуализации данных WinRT на C#

Я задал этот вопрос на форуме MSDN (безуспешно), может быть, StackOverflow еще раз докажет свою силу...

Я присутствовал на сеансе Хамида Махмуда, посвященном приложениям для сбора и составления списков, и был рад увидеть поддержку на уровне управления. для виртуализации данных. К сожалению, не было дано никаких подробностей о том, как реализовать IVirtualizingVector и IIncrementalLoadingVector, и не очевидно, как это сделать, глядя на сами интерфейсы. Может кто выложит образец?

Дополнительный бонусный вопрос для SO - есть ли более простой способ реализовать IAsyncOperation (необходимый для реализации IIncrementalLoadingVector), чем его кодирование «с нуля»?


person Sergey Aldoukhov    schedule 26.09.2011    source источник
comment
Ваш бонусный вопрос, похоже, вообще не связан с первым. Пожалуйста, старайтесь задавать по одному вопросу за раз.   -  person svick    schedule 26.09.2011
comment
@svick Да, это так. Для реализации IIncrementalLoadingVector требуется реализация IAsyncOperation.   -  person Sergey Aldoukhov    schedule 26.09.2011
comment
Существует пример проекта, в котором есть класс, реализующий IVirtualizingVector в примере Basic Media Playback.   -  person Pavel Minaev    schedule 28.09.2011
comment
@pavel-minaev Тот, что в Basic Media Playback, кажется фиктивной реализацией - он всегда возвращает false из IsPlaceholder()   -  person Sergey Aldoukhov    schedule 28.09.2011


Ответы (2)


Что касается вашего бонусного вопроса, взгляните на перегруженный метод Create, доступный в System.Runtime.InteropServices.WindowsRuntime.AsyncInfoFactory, особенно на перегрузки, которые принимают Func<Task<T>>.

person Pavel Minaev    schedule 26.09.2011

Я разместил в своем блоге статью, в которой показано, как реализовать IVirtualizingVector здесь. В нем описывается обзор того, как работает IVirtualizingVector, а также реализация, которую вы можете использовать, выпущенная как часть инфраструктуры Cocoon с открытым исходным кодом. . Я также надеюсь показать, как использовать IIncrementalLoadingVector в будущем.

person Andy Wilkinson    schedule 22.12.2011
comment
Я использовал классы Энди, и они хорошо работают, кстати, Энди, я разместил вопрос в вашем блоге :) - person GONeale; 20.04.2012