我在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或网络上找不到任何内容,所以任何人都可以解释我所看到的内容吗?