c# WPF 项目优化

业务流程图

优化前后对比:

优化过程:

1. 界面刷新,特别是表格刷新

把ListView.DataContext  = DataSet 这些代码替换成以下:

        public static void SetDataSource(ListView lv, DataSet ds)
        {
            DataSet preds = (DataSet)lv.DataContext;
            if (preds == null) // first set datacontext
            {
                preds = ds;
                lv.DataContext = preds;
            }
            else // reset data context, we don't change the datacontext object , but change data rows
            {
                DataTable tb = preds.Tables[0];
                tb.Clear();
                tb.Dispose();
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    tb.ImportRow(dr);
                }
                lv.DataContext = preds;
                ds.Dispose();
                ds = null;
            }
        }

        public static void AddDataRowToDataSource(ListView lv, DataRow dr)
        {
            DataSet ds = (DataSet)lv.DataContext;
            if (ds == null) 
            {
                return;
            }
            else 
            {
                DataTable tb = ds.Tables[0];
                tb.ImportRow(dr);
                lv.DataContext = ds;
            }
        }

  2. 尽量减少 new 的使用

原文地址:https://www.cnblogs.com/EasyInvoice/p/5512420.html