Я использую ленточный элемент управления WPF с некоторым успехом; Сейчас я пытаюсь использовать Ribbon Gallery, используя Категории в сценарии с привязкой к данным. Вот некоторые примеры данных: -
var data = new[]
{
new { Category = "Sport", Hobby = "Football" },
new { Category = "Sport", Hobby = "Table Tennis" },
new { Category = "Music", Hobby = "Guitar" },
new { Category = "Music", Hobby = "Piano" },
new { Category = "PC", Hobby = "StarCraft 2" },
};
Я группирую данные и хочу отобразить элементы в галерее, сгруппированной по категориям: -
IEnumerable CategorisedHobbies;
CategorisedHobbies = data.GroupBy(d => d.Category).ToArray();
Все довольно стандартно. Мой XAML выглядит следующим образом: -
<ribbon:RibbonGallery ItemsSource="{Binding CategorisedHobbies}">
<ribbon:RibbonGallery.ItemTemplate>
<DataTemplate>
<ribbon:RibbonGalleryCategory Header="{Binding Key}" ItemsSource="{Binding}" MaxColumnCount="1">
<ribbon:RibbonGalleryCategory.ItemTemplate>
<DataTemplate>
<ribbon:RibbonGalleryItem Content="{Binding Hobby}"/>
</DataTemplate>
</ribbon:RibbonGalleryCategory.ItemTemplate>
</ribbon:RibbonGalleryCategory>
</DataTemplate>
</ribbon:RibbonGallery.ItemTemplate>
</ribbon:RibbonGallery>
Однако, когда приложение запускается, хотя я правильно получаю категории, отображаемые в ленточной галерее, каждый элемент представляет собой пустой квадрат. Я знаю, что коллекции становятся связанными, потому что я вижу, что размер категории больше, например. Спорт, чем компьютер.

Если я жестко закодирую XAML следующим образом, то, конечно, все работает: -
Есть идеи, что я здесь делаю не так? Спасибо!