首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > CAD教程 >

ObservableCollection.Insert 速度很慢解决办法

2013-01-28 
ObservableCollection.Insert 速度很慢如题,有没有什么办法可以解决?加的数据越多,就会越慢。//定义的数据

ObservableCollection.Insert 速度很慢
如题,有没有什么办法可以解决?
加的数据越多,就会越慢。

  //定义的数据类型
    public class RowData : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        protected void OnPorpertyChanged(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        private ObservableCollection<string> dataArray;
        public ObservableCollection<string> RowDataArray
        {
            get { return dataArray; }
            set
            {
                if (dataArray != value)
                {
                    dataArray = value;
                    OnPorpertyChanged("RowDataArray");
                }
            }
        }

        private string rowTitle;
        public string RowHeader
        {
            get { return rowTitle; }
            set
            {
                if (value != rowTitle)
                {
                    rowTitle = value;
                    OnPorpertyChanged("RowHeader");
                }
            }
        }

        private ObservableCollection<string> foregroundArray;
        public ObservableCollection<string> ForegroundArray
        {
            get { return foregroundArray; }


            set
            {
                if (foregroundArray != value)
                {
                    foregroundArray = value;
                    OnPorpertyChanged("ForegroundArray");
                }
            }
        }

        private ObservableCollection<string> backgroundArray;
        public ObservableCollection<string> BackgroundArray
        {
            get { return backgroundArray; }
            set
            {
                if (backgroundArray != value)
                {
                    backgroundArray = value;
                    OnPorpertyChanged("BackgroundArray");
                }
            }
        }
    }


//添加数据
            foreach (RowData rowdata in Variablemodel.CollectionData)
            {
                rowdata.RowDataArray.Insert(nColIndex, "");
                rowdata.BackgroundArray.Insert(nColIndex, null);
                rowdata.ForegroundArray.Insert(nColIndex, "Black");
            }


第一次: 0.734s
第二次:1.125s
第三次: 2.062s
。。。
[解决办法]
不知道你这里增加的时候是不是数据量极大~~ 如果是这样的话,建议再服务器端进行分页~~
[解决办法]
看下是不是控件上绑定的什么属性写错了。
发生异常就会变得很慢。
[解决办法]
个人觉得还是ui上绑定的问题,比如用到了内部逻辑复杂的converter等。你不做数据绑定,仅仅插入数据到集合中,试试,应该会很快吧。

热点排行