小编Dan*_*yth的帖子

名为RowDefinition的网格无法在WPF4中填充为ItemsPanel

我在ItemsControl ItemsPanelTemplate中定义了一个Grid,其中一个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>
Run Code Online (Sandbox Code Playgroud)

这在3.5中运行良好,但是当我们最近升级到4.0时,它们全都崩溃了.我会看到一个Grid,它定义了Row和Column定义但没有子节点.

如果我在网格上设置IsItemsHost = true,一切都会开始工作.如果我将一个x:Name添加到Grid本身,或者从RowDefinition中删除x:Name,它都可以正常工作.

<ItemsPanelTemplate>
    <Grid IsItemsHost="True">
        <Grid.RowDefinitions>
            <RowDefinition x:Name="t" />
            <RowDefinition />
        </Grid.RowDefinitions>
    </Grid>
</ItemsPanelTemplate>
Run Code Online (Sandbox Code Playgroud)

要么

<ItemsPanelTemplate>
    <Grid x:Name="g">
        <Grid.RowDefinitions>
            <RowDefinition x:Name="t" />
            <RowDefinition />
        </Grid.RowDefinitions>
    </Grid>
</ItemsPanelTemplate>
Run Code Online (Sandbox Code Playgroud)

这似乎是一个错误,但我想与社区核实,看看人们是否同意,或者我是否忽视了某些事情.我在Connect或网络上找不到任何内容,所以任何人都可以解释我所看到的内容吗?

wpf xaml .net-4.0 itemscontrol itemspaneltemplate

6
推荐指数
1
解决办法
327
查看次数

标签 统计

.net-4.0 ×1

itemscontrol ×1

itemspaneltemplate ×1

wpf ×1

xaml ×1