2012-04-23 4 views
0

В моем приложении metro я хочу создать семантический вид для страницы.Коллекция семантических зумов сгруппирована

Для этого я вручную создаю объект сгруппированной коллекции, используя цикл foreach. По какой-то причине я не использую LINQ для группировки коллекции объектов.

SO теперь, когда я пытаюсь заполнить семантический зум, он ничего не отображает (без семантического увеличения).

Как я могу связать свою собственную коллекцию источника сгруппированы коллекции

Xaml

<CollectionViewSource x:Name="GroupedSource" IsSourceGrouped="true" /> 

код позади файла

GroupedSource.Source =context.Collection; // my own grouped collection.. 

При использовании LINQ это работает fine.But я не могу использовать Linq, потому что по некоторым причинам

Есть ли что-нибудь еще, что мне нужно сделать для g и др

+0

Вы прочитали это? http://www.scottlogic.co.uk/blog/colin/2011/11/an-introduction-to-semantic-zoom-in-windows-8-metro/ –

ответ

0

Попробуйте использовать этот код, чтобы установить источник:

(semanticZoom.ZoomedOutView as ListViewBase).ItemsSource = GroupedSource.View.CollectionGroups; 
0

нужно немного больше деталей, но. IsSourceGrouped = "true" - это только половина истории, если вы не привязаны к источнику данных hierrachal. Вам нужно указать свойство, содержащее дочернюю коллекцию - ItemsPath = "myItems" как свойство xaml для CollectionViewSource. Если это не проблема, это может быть случай обеспечения исполнения. поместите точку останова и проверьте контекст. Коллекцию заполняется до ее использования, если context.Collection - это ObservableCollection, который вы должны заполнить в любое время (например, асинхронное заполнение).

<CollectionViewSource x:Name="GroupedSource" IsSourceGrouped="true" ItemsPath="Items" />