DataGrid枚举值更新错误的原因

作者:周 金根  来源:博客园  发布时间:2010-06-09 18:10  阅读:2287 次  原文链接  [收藏]  

  OpenExpressApp之前使用了DataGrid来作为列表控件,在内置支持的属性编辑方式中介绍了枚举类型的使用,之前在.Net35下都是好的,一切正常,但是前一阵子OpenExpressApp升级到了.Net4了,对于枚举属性的列表控件编辑时会出现错误,更新一个枚举值后,控件显示有错误,如下所示:

查看堆栈,发现只能看到一个代码段,其余的都是.Net Framework内部的代码,看了代码方法,但是不太明白,我想最好的办法就是查看代码了,以前都是用Reflector查看代码,但是那只是静态的看 代码,想起在VS2008下可以查看.Net Framework源码,我何不在VS2010下试试呢,于是开始去找Net4源码。

下载.Net 4源码

  在 http://referencesource.microsoft.com/netframework.aspx 中选择.Net4下载

准备调试

网上介绍了一些调试框架代码的设置,我试了一下,但是都会去服务器下载,试过多个方法后,最终按照如下方法进行可以顺利的进行调试

  1. 安装后只有两个目录【Source】和【Symbols】
  2. 配置Option,去除【Enable Just My Code】,记住也不要设置【Enable .Net Framework source stepping】(否则允许后总会去服务器下载pdb文件)
  3. 配置Debug/Symbols(根据自己安装路径设置)
  4. 拷贝pdb到【Symbols\Cache\MicrosoftPublicSymbols】目录。我之前试验时发现下载的pdf会放到【MicrosoftPublicSymbols】目录,所以我们需要把安装路径下的pdb文件都拷贝到这个目录

调试代码

  1. 运行代码,开始调试,记住只能通过Call Stack设置断点
  2. 一步一步Step into调试后,发现事故发生地
    public class EnumConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){return new EnumViewModel((Enum)value).Label;}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){          return null;   //这句话错误,没有返回正确的值        }}修改代码如下:
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return EnumViewModel.LabelToEnum(value.ToString(), targetType);}

回顾

  1. 多实验,找到可能性
  2. 通过.Net Source能够方便调试和定位bug

欢迎转载,转载请注明:转载自周金根 [ http://zhoujg.cnblogs.com/ ]

下载.Net 4源码相关推荐

  1. 在Ubuntu 14.04 64bit上下载更新x265源码

    x264,x265,vpx这三个开源的视频编码器可以说是当今"最火"的视频编码器.x264现在占据着H.264视频编码器的半壁江山:x265则是目前实现H.265标准最好的开源视频 ...

  2. Asp.Net Web Api 2 实现多文件打包并下载文件示例源码

    前言 最近由于工作和个人事务,站点也好久没更新了,但这并不影响我对.NET的热情.站点的更新工作还是得想办法抽时间来完成的. 提要 今天利用中午的时间来写一篇关于Asp.Net Web Api下载文件 ...

  3. [HOW TO]-下载android官方源码

    介绍下载android官方源码的方式: 使用每月更新的初始化包 传统初始化方法 1.使用每月更新的初始化包 下载初始化包->repo sync wget -c https://mirrors.t ...

  4. Linux下载安装一个源码包

    下载一个安装包除了yum和rpm之外我们还可以下载源码包 编译并安装 首先下载所有的源码包一定要去官网,为了就是防止源码包被第三方编译 例如我们今天安装一个httpd的源码包,也就是经常说的apach ...

  5. 使用代理下载android系统源码和SDK

    ** 使用代理下载android系统源码和SDK ** 谷歌被墙后,如何下载android源码和sdk?使用代理.步骤如下: 寻找可用代理 先在这里找一个可用的代理服务器:http://www.xic ...

  6. Maven引入依赖后自动下载并关联源码(Source)

    http://justke123.iteye.com/blog/981627 好多用 Maven 的时候会遇到这样一个棘手的问题: 就是添加依赖后由于没有下载并关联源码,导致自动提示无法出现正确的方法 ...

  7. 一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0

    一个下载Google code源码的 绿色.迷你工具 MiniSVN v1.0 想下载Google code中的源码 不需要装各种软件,只需要一个小工具即可! 如何使用? 访问一个谷歌开源项目网站,比 ...

  8. PHP付费资源下载交易平台网站源码

    简介: PHP付费资源下载交易平台网站源码可用于虚拟商品出售 安装搭建介绍: 环境:PHP5.3,MYSQL 数据库配置修改文件:\data\config.php 后台:域名/admin 账号:adm ...

  9. 下载android平台源码

    我在寻找下载android平台源码时发现了几种方法,有的方法已经失效,现在把测试成功的下载方法写下来: 1,环境要求 需要在linux环境下下载.我选用的是ubuntu 我在安装完ubuntu时报错& ...

最新文章

  1. Golang的交叉编译问题
  2. supervisor的常用命令
  3. 给定下面的java代码_则运行_会产生类型的异常_JavaSE_笔试题_单选选择题
  4. Visio 2010,如何打开多个窗口
  5. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
  6. Jos pipe实现解析
  7. 2018.08.02 权限管理 笔记
  8. Gartner预测公有云将迎来“双头垄断”局面
  9. php和plc哪个难,致PLC初学者的入门一课,七大误区如何解决?
  10. 大地测量学基础(复习)第三部分
  11. 岩板铺地好吗_**岩板铺地「泉州泰亨石材供应」
  12. 2013江苏计算机二级vfp试题,2008年春季江苏省计算机等级考试二级VFP考试试题(含答案)...
  13. Markov链n步转移概率的两种解法
  14. DTPA PEG 异硫氰酸荧光素,DTPA PEG FITC,FITC-PEG-DTPA
  15. 福州大学计算机学院李敏,福州大学厦门工艺美术学院
  16. 将一张图片的人物融入另一张图片中
  17. 第六章 Wi-Fi扫描流程
  18. 似然,似然,似是而然!
  19. 什么是vps?vps和代理ip的本质区别?
  20. 数字内容市场水量上涨,阜博集团能否成为“鲶鱼”?

热门文章

  1. android permission 访问权限大全
  2. 黑客破译android开发代码真就那么容易?
  3. linux下mysql定时备份数据库
  4. Quartz cron表达式
  5. 共谋大数据产业发展新篇章
  6. Laravel深入学习5 - 应用架构
  7. Android 热修复总结
  8. 分享Silverlight/WPF/Windows Phone一周学习导读(3月1日-3月5日)
  9. python word转pdf
  10. HBase 与 MapReduce 集成