c# - WPF DataGrid 绑定(bind)性能问题

标签 c# wpf performance data-binding datagrid

我的数据网格有许多以编程方式添加的列。

dgData.Columns.Add(new DataGridTextColumn { Width=50, Header = e.Naam, Binding = new Binding(String.Format("Figures[{0}]", e.Id)) });

设置为数据网格的项目源的集合是数据项的集合

public class Data
{
    private string _set = "";
    public string Set
    {
        get { return _set; }
        set { _set = value; }
    }

    private Dictionary<long, int> _figures;
    public Dictionary<long, int> Figures
    {
        get { return _figures; }
        set { _figures = value; }
    }
}

当我将集合设置为 itemssource 时,数据网格需要很长时间才能填充数据,有时(大约 25 列)长达 30 秒或更长时间!

我的 XAML 非常干净:

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Name="dgData">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Set" Binding="{Binding Set}" Width="100"/>
    </DataGrid.Columns>
</DataGrid>

有什么技巧可以提高此绑定(bind)的性能吗? 如果我在创建列时删除绑定(bind),它执行正常!

最佳答案

请尝试将 EnableColumnsVirtualizationEnableRowVirtualization 属性设置为 true,至少这会提高填充性能,但滚动仍然会很慢。

关于c# - WPF DataGrid 绑定(bind)性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025434/

相关文章:

python - 合并两个 : dicts vs lists 的最快方法

performance - 加速 Haskell PBKDF2 算法

java - 当只关心几种算法的相对性能时,强制 Java 从不 JIT 编译我的方法会更好吗?

c# - IServiceCollection.AddHostedService<>();没有解决

c# - 选择正确的变量类型 C#

c# - 如何检查两个矩形是否在 WPF 中相交

c# - 从 Winforms ElementHost WPF UserControl 设置 WPF 对话框所有者

c# - C# 中的协方差问题

c# - 我应该等待使用 TaskCompletionSource 的同步 Task<T> 吗?

c# - 如何在 C# 中使用 XAML 中定义的画笔资源