【发布时间】:2012-01-31 11:38:41
【问题描述】:
我有一个 GridView,我在其中在代码隐藏中设置 ItemsSource。网格中的所有列都在 XAML 中定义,所有列宽都是“自动”。当我最初设置网格的 ItemsSource 时,列宽设置正确。
现在,根据用户的操作,网格的 ItemsSource 可能会设置为新的 EntityCollection。我注意到的是,列宽与之前的 ItemsSource 保持一致。也就是说,当为 Grid 设置新的 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()?它可能会自己做,但以防万一, -
我已经试过了,但是没有用
标签: wpf xaml gridview binding itemssource