Я пытался (и не смог) динамически создать аккордеон, используя привязку данных.
У меня есть коллекция с именем MenuGroups, которая содержит строку «ModuleName» и коллекцию IList с именем MenuItems. Я хочу привязать MenuGroups к заголовкам и MenuItems к содержимому.
Ближайший, который мне удалось до сих пор, использует этот XAML:
<WPFToolkit:Accordion ItemsSource="{Binding MenuGroups}" HorizontalAlignment="Stretch" SelectionMode="OneOrMore">
<WPFToolkit:Accordion.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ModuleName}" />
</DataTemplate>
</WPFToolkit:Accordion.ItemTemplate>
<WPFToolkit:Accordion.ContentTemplate>
<DataTemplate>
<TextBox Text="{Binding MenuItems/MenuItemName}"/>
</DataTemplate>
</WPFToolkit:Accordion.ContentTemplate>
</WPFToolkit:Accordion>
При этом заголовки создаются правильно, но в контенте отображается только первый пункт меню в каждой группе. Я пробовал различные коннотации вышеизложенного, но пока не достиг желаемого результата. Я попытался использовать ListView вместо TextBlock в шаблоне контента, думая, что он понадобится мне для нескольких элементов, но при этом получилась пустая область контента.
Кто-нибудь может помочь?