wpf - wpf datagrid 性能问题中的组合框列

标签 wpf datagrid combobox

我有一个包含数据网格的 wpf 表单。数据网格中的 1 列是组合框类型。组合框的 ItemsSource 属性中有 1000 个项目。因此,当单击组合框(我相信是渲染问题)之外的箭头时,需要花费大量时间来显示值。我们如何让组合框更快地显示项目,几乎没有延迟?

最佳答案

试着把它放到你的组合框上。这应该使它在您查看它们时加载它们,而不是一次加载所有项目。

对于数据网格内部,我总是使用 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>  

关于wpf - wpf datagrid 性能问题中的组合框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14143416/

相关文章:

c# - WPF C# DynamicDataDisplay - 更改 DateTimeAxis 颜色

c# - wpf:如何弹出用户控件?

c# - 对不重复的实体列表的所有属性执行 LINQ 搜索

C# ComboBox SelectedValue 在失去焦点时重置

wpf - 表面开发: Translate/Rotate/Scale items without ScatterView

ItemsControl 内按钮的 WPF 命令参数

c# - 如何根据单元格背景颜色更改 WPF DataGrid 单元格小部件背景颜色?

c# - WPF 将枚举绑定(bind)到组合框

c# - 将 Array 的特定项目放在末尾

wpf - 如何开发支持数据绑定(bind)的WPF数据网格控件?