WPF DataGrid绑定性能问题

时间:2011-08-11 11:58:47

标签: c# wpf performance data-binding datagrid

我的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>

是否有任何提示可以改善此绑定的性能? 如果删除绑定,则在创建列时,它执行正常!

1 个答案:

答案 0 :(得分:4)

请尝试将EnableColumnsVirtualizationEnableRowVirtualization属性设置为true,至少这会提高人口效果,但滚动仍然会很慢。