Dre*_*kes 5 wpf layout itemscontrol
关于SO的其他 几个问题 得出了我的相同结论 - 使用a 来构造每个项目以定位项目,使得它们类似于网格比使用a更简单(特别是格式化). ItemsControlDataTemplateListView
代码类似于:
<StackPanel Grid.IsSharedSizeScope="True">
<!-- Header -->
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Column Header 1" />
<TextBlock Grid.Column="1" Text="Column Header 2" />
</Grid>
<!-- Items -->
<ItemsControl ItemsSource="{Binding Path=Values, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Column1" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Column2" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding ColumnProperty1}" />
<TextBlock Grid.Column="1" Text="{Binding ColumnProperty2}" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
我看到的问题是,无论何时我交换ItemsSource绑定的对象(这ObservableCollection是我替换引用,而不是清除和重新添加),整个"网格"会跳动几秒钟.
据推测,它正在进行一些布局传递以使所有Auto-width列匹配.
这对我的用户来说非常分散注意力,我想整理一下.有没有人见过这个?
不幸的是,我无法使用提供的代码重现该问题。我尝试过交换 20 到 1000 个项目的样本,并且集合内有 100 种不同的宽度。没有东西在跳舞。在大型集合(200 及以上)中,UI 过去会挂起一段时间,然后释放,显示包含所提供项目的新网格。
| 归档时间: |
|
| 查看次数: |
2286 次 |
| 最近记录: |