Сетка с именем RowDefinition не может быть заполнена как ItemsPanel в WPF4

У меня есть Grid, определенная в ItemsControl ItemsPanelTemplate, а в одном из RowDefinitions определено ax: Name (так что я могу анимировать размер строки).

<ItemsControl ItemsSource="{Binding Data, Source={StaticResource model}}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition x:Name="t" />
                    <RowDefinition />
                </Grid.RowDefinitions>
            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

Это нормально работало в версии 3.5, однако, когда мы недавно обновились до 4.0, все развалилось. Я бы увидел сетку с определенными определениями строк и столбцов, но без дочерних элементов.

Если я установил IsItemsHost = true в сетке, все начинает работать. Если я добавлю x: Name в саму сетку или удалю x: Name из RowDefinition, все заработает.

<ItemsPanelTemplate>
    <Grid IsItemsHost="True">
        <Grid.RowDefinitions>
            <RowDefinition x:Name="t" />
            <RowDefinition />
        </Grid.RowDefinitions>
    </Grid>
</ItemsPanelTemplate>

или

<ItemsPanelTemplate>
    <Grid x:Name="g">
        <Grid.RowDefinitions>
            <RowDefinition x:Name="t" />
            <RowDefinition />
        </Grid.RowDefinitions>
    </Grid>
</ItemsPanelTemplate>

Это похоже на ошибку, но я хотел проверить с сообществом и посмотреть, согласны ли люди, или я что-то упустил. Я не нашел ничего в Connect или в Интернете, так может ли кто-нибудь объяснить, что я вижу?

6
задан Dan Forsyth 23 September 2011 в 19:33
поделиться