我有一个包含数据网格的 wpf 表单。数据网格中的 1 列是组合框类型。组合框的 ItemsSource 属性中有 1000 个项目。因此,当单击组合框旁边的箭头(我相信呈现问题)时,显示值需要花费大量时间。我们怎样才能让组合框更快地显示项目,几乎没有延迟?
问问题
777 次
1 回答
6
试着把它放到你的组合框上。而不是一次加载所有项目,这应该使它在您查看它们时加载它们。
对于数据网格内部,我总是将 DataGridTemplateColumn 用于我的组合框列:
<DataGridTemplateColumn Header="My Combo Column">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin="0" ItemsSource="{Binding Path=DataContext.MyCollection, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"
SelectedItem="{Binding Path=Item.Property, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Width=250 VirtualizingStackPanel.VirtualizationMode="Recycling" CanHorizontallyScroll="True"/>
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
于 2013-01-03T16:59:11.050 回答