Как связать видимость AccordionItem при использовании Accordion.ItemTemplate в Silverlight? - PullRequest
0 голосов
/ 18 июля 2011

Аккордеонный элемент Свойство Visibility можно связать так:

<layoutToolkit:Accordion x:Name="MyAccordion">
    <layoutToolkit:AccordionItem Visibility="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}">
        ...
    </layoutToolkit:AccordionItem>
</layoutToolkit:Accordion>

Но как связать его при использовании Accordion.ItemTemplate?

<layoutToolkit:Accordion ItemsSource="{Binding AcordionItems}" x:Name="MyAccordion">
    <layoutToolkit:Accordion.ItemTemplate>
        <DataTemplate>
            ...
        </DataTemplate>
    </layoutToolkit:Accordion.ItemTemplate>
    <layoutToolkit:Accordion.ContentTemplate>
        <DataTemplate>
            ...
        </DataTemplate>
    </layoutToolkit:Accordion.ContentTemplate>
</layoutToolkit:Accordion>

Я могу привязать IsVisible к элементам внутри DataTemplate, но затем отображается пустой элемент аккордеона.Мне нужно, чтобы я мог показать / скрыть весь предмет гармошки.

1 Ответ

0 голосов
/ 26 июля 2011

Я использовал StackPanel с несколькими аккордеонами:

<StackPanel Orientation="Vertical">
    <ItemsControl ItemsSource="{Binding AcordionItems}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Vertical"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <layoutToolkit:Accordion Visibility="{Binding IsVisible, Converter=
                    {StaticResource VisibilityConverter}}">
                    <layoutToolkit:AccordionItem>
                        ...
                    </layoutToolkit:AccordionItem>
                </layoutToolkit:Accordion>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>
...