Как развернуть область аккордеона (по вертикали) к динамическому содержимому?

У меня есть основная сетка данных, а под ней - элемент управления «аккордеон». В одном из элементов аккордеона у меня есть еще одна сетка данных, которая привязывается к выбранному элементу первой сетки данных. Простой xaml:

<sdk:DataGrid Name="dgMain" ItemsSource="{Binding SomeSource}" />
<toolkit:Accordion>
    <toolkit:AccordionItem Header="Details">
        <sdk:DataGrid ItemsSource="{Binding ElementName=dgMain, Path=SelectedItem.Children}"/>
    </toolkit:AccordionItem>
</toolkit:Accordion>

У меня для свойства VerticalAlignment второй сетки установлено значение «Растянуть», поэтому она растягивается, поскольку к ней привязаны разные размеры коллекций, но проблема в том, что она растягивается только в пределах размера AccordionItem, поэтому, если я выберу новый элемент в первой сетке у которого больше «Дочерних элементов», тогда мне нужно прокрутить вторую сетку, потому что AccordionItem не изменился.

Область AccordionItem изменится только тогда, когда я снова сжимаю и расширяю ее. Установка VerticalContentAlignment на «Stretch» ​​для элемента аккордеона не работает. Я предполагаю, потому что это срабатывает только при первом расширении.

Кто-нибудь знает, что еще я могу попробовать, или я что-то упускаю. Я бы предпочел придерживаться решения xaml, чтобы оставаться дружелюбным к MVVM, но рад все слышать.

10
задан Adam 9 September 2010 в 22:22
поделиться