我有一个GridView,我在代码隐藏中设置ItemsSource。网格中的所有列都在XAML中定义,并且所有列宽均为“自动”。当我最初设置网格的ItemsSource时,列的宽度设置正确。当更改ItemsSource时GridView列的宽度不会更新
现在,根据用户的操作,网格的ItemsSource可能被设置为一个新的EntityCollection。我注意到的是,列宽保持与之前的ItemsSource一样。也就是说,当为网格设置新的ItemsSource时,列宽似乎不会自动调整。在设置列宽时,代码隐藏或XAML中有没有办法强制Grid使用新的ItemsSource?我认为这将是GridView在ItemsSource重置时自动执行的操作。
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ListView>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Width="Auto" Header="Status">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Image Width="16" Height="16" Source="{Binding Path=Blocking}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="Auto" Header="Title">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</ScrollViewer>
你试图迫使' 'GridView'上的UpdateLayout()'?它可能是它本身,但以防万一, – 2012-01-31 12:22:38
我已经尝试过,但它并没有帮助 – Igal 2012-01-31 12:36:33