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. Nginx 301与302配置
  2. C++cycle sort循环排序的实现算法(附完整源码)
  3. 一位经验丰富的程序员如何建立网络初创企业?
  4. jQuery进行DOM操作记录
  5. Node.js抓取网页信息并展示(cheerio网络爬虫)
  6. python语法学习_python语法学习笔记
  7. Spacecom:将和信威集团在30天内决定新的收购协议
  8. php url编码解码
  9. Qt开发之路——SogouInput\Components\ Error - RtlWerpReportException failed with status code :-107374182
  10. 最优算法-LQR-离散时间有限边界
  11. easyui filebox 上传类型控制
  12. STL 自定义sort 前缀和差分练习
  13. 关乎未来40年企业生存,这些食品饮料巨头都在干这件事儿! | 商研局 Cool Business...
  14. 意法半导体终于拥抱Cortex-A架构发布STM32MP1 MPU
  15. Jetson Xavier NX系统安装至 nvme 硬盘
  16. golang使用技巧与易错点总结
  17. RGB与YCbCr颜色空间的转换
  18. 合成大西瓜html源码,合成大西瓜
  19. 我国成功研制EB级云存储系统:可满足大数据量存储落地需求
  20. 【并发编程的艺术】并发机制原理

热门文章

  1. android:怎样用一天时间,写出“飞机大战”这种游戏!(无框架-SurfaceView绘制)...
  2. setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*
  3. 《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器
  4. 升级 Java 编程规范的6个约定
  5. (转载)IE 浏览器的创新
  6. 重新整理Cellset转Datatable
  7. 论学好Linux系统的超级重要性
  8. 解决由于DNS解析导致Emacs启动巨慢的问题
  9. 字符设备之register_chrdev与register_chrdev_region
  10. Flash Builder 4快速入门----学习笔记