2013-12-10 2 views
0

Итак, у меня есть фид элементов, который автоматически обновляется при прокрутке к краю моего GridView с помощью IncrementalLoader. Я хочу сделать их разными размерами. Например, 1 большой элемент 2x2, а затем 4 маленьких элемента 1x1 и так далее.Элементы с изменяемой величиной с добавочной загрузкой

Я узнал, как сделать свой собственный VariableSizedWrapGrid с пользовательскими ColSpan и RowSpan для каждого элемента.

Проблема: VariableSizedWrapGrid требует статических элементов, которые уже загружены. Поэтому я не могу использовать оба ...

Любое решение, как заставить их работать одновременно?

+0

Вы говорите, что ваши данные помещаются в VariableSizedWrapGrid в XAML? Вы пытались привязать данные? –

+0

@WaltRitscher Мои данные привязаны и IncrementalLoader работает. Если я прокручу правый край, будут загружены новые элементы. Но это для равных предметов. Когда я попытался добавить VariableSizedWrapGrid, они не будут отображаться. Они не могут быть проанализированы или что-то в этом роде. И тот же код работает для статического списка элементов, предварительно определенных. –

ответ

0

Мне удалось решить это самостоятельно. Я использовал этот учебник для предметов с переменным размером: http://blog.jerrynixon.com/2012/08/windows-8-beauty-tip-using.html

А потом я избавился от IncrementalLoader. Вместо этого я редактировал копию шаблона GridView, а затем шаблон ScrollViewer (с Blend). Это дало мне доступ к ScrollBars, используемым в ScrollViewer.

Все, что мне нужно сделать, это добавить событие в ScrollBar:

ValueChanged="HorizontalScrollBar_ValueChanged" 

, а затем функции выглядит следующим образом:

private void HorizontalScrollBar_ValueChanged(object sender, RangeBaseValueChangedEventArgs e) 
{ 
     ScrollBar sb = (ScrollBar)sender; 

     if (sb.Maximum == e.NewValue) 
     { 
      //Scroll is at end 
      //Add items here 
     } 
} 
Смежные вопросы