c# WPF 项目优化
2016-05-20 16:02
369 查看
业务流程图
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155723201-553858958.png)
优化前后对比:
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155759498-1156946940.png)
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155826294-357747552.png)
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155846076-1523878640.jpg)
优化过程:
1. 界面刷新,特别是表格刷新
把ListView.DataContext = DataSet 这些代码替换成以下:
2. 尽量减少 new 的使用
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155723201-553858958.png)
优化前后对比:
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155759498-1156946940.png)
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155826294-357747552.png)
![](https://images2015.cnblogs.com/blog/544484/201605/544484-20160520155846076-1523878640.jpg)
优化过程:
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 的使用
相关文章推荐
- c# 数字图像处理的一些方法
- C#理解Thread.Sleep()方法(转帖)
- c#上传大文件方法
- 字 典 加 密
- 聊一聊C#的Equals()和GetHashCode()方法
- C# DevExpress TreeList指定KeyFieldName后无法显示该列的问题
- C#中CLR(公共语言运行时)与IL(中间代码)
- 加 密 基 础
- C#中的集合对象总结
- C#多线程技术总结(同步)
- C#多线程技术总结(异步)
- C#设计模式之简单工厂模式(Simple Factory)
- C# 自己用到的几个参数转换方法
- C#技术开发
- C#技术开发
- C#windows service服务
- (C#) 使用Nullable类型
- C#多线程那点事——信号量(Semaphore)
- C#/.NET 基础学习
- C#技术开发中心