上海百维科技,上海网站建设 上海软件开发公司热线电话:021-57700304  
  首 页 产品与服务 软件定制 成功案例 思源优势 技术学院 关于我们 联系我们
 
 
思源软件学院 >>> 根目录>>.NET技术>>C# >>>下载.Net 4源码
时间是世界上的一切成就的土壤。时间给空想者痛苦,给创造者幸福。——麦金西(上海网站建设)

下载.Net 4源码


Admin
2012年1月19日

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/ ]


 

上海软件开发公司业务部:黄浦区重庆北路211号602室 | 上海软件开发公司技术部:松江区天云路259号| 上海软件开发公司综合部:松江区南期昌路346弄50号401室
上海软件开发 Copyright © 2005-2010 All Rights Reserved 电话:021-57616508  传真:57661889
沪ICP备05011021号