摘要: 在制作一个批量序列化工具时遇到了如下问题,在此记录一下,仅供参考。 主程序加载另一个程序集,将其中的所有类取出,然后对这些类分别调用泛型类或泛型方法。控制台程序解决方案如下:Main工程:提供Worker类进行数据操作,XMLTool<T>泛型类将数据集序列化为.xml文档,RootCollection<T>类封装数据集Worker类 提供成员方法void DoWork<T>()、List<T> GetList<T>()、静态成员方法StaticDoWork<T>(),代码如下: 1 public class Worker 阅读全文
posted @ 2012-03-13 14:16 dotNET程序猿 阅读(11632) 评论(0) 推荐(6) 编辑
摘要: Download Source - 80KB原文作者:Qwertie, Canada博文主页:点击查看原文地址:点击查看免责说明:本文由CodeProject博文翻译而来,个人学习,仅供参考,欢迎指正,如有侵权,烦请告知删除。翻译原因:在WPF/Silverlight数据绑定流行的时代,很多开发者并没有深入研究WinForm所提供的数据绑定机制,以至于很多人在编写应用时,仍在后台代码中操纵数据集合,并不断重新加载到数据控件上。如果您和我一样,还在这么做,不妨读一下这篇文章,改变一下编码方式。详解Data Binding通过几个简单示例深入了解WinForm数据绑定特性简介: 关于WinFo.. 阅读全文
posted @ 2012-02-17 21:40 dotNET程序猿 阅读(26620) 评论(12) 推荐(16) 编辑
摘要: 这几天搭一个C/S的项目框架,发现一个以前没有注意过的问题,即:在同一个解决方案(.sln)下的A工程(.csproj)引用B工程的.dll后,在代码中使用using是无法找到对应命名空间。如图1所示,MCC.Client引用了MCC.Business工程生成的.dll,但在图2中,报了“Error2The type or namespace name 'UserProfile' could not be found (are you missing a using directive or an assembly reference?)C:\Documents and Set 阅读全文
posted @ 2012-02-09 15:00 dotNET程序猿 阅读(8865) 评论(1) 推荐(2) 编辑
摘要: Download Source - 117KB 如上述两图,左侧为WinForm的DataGridView,右侧为WPF的DataGrid(封装成了自定义控件DragDataGrid,通过WPF的ElementHost装载在WinForm中)。均可以通过左键拽取行进行拖拽排序。另外实现了从WinForm的DataGridView向WPF的DataGrid的拖拽,因此,两个DataGridView之间的拖拽和两个DataGrid的拖拽方法类似。以上控件均关闭了Sort功能,并将AllowDrop属性置为true.WinForm DataGridView的行拖拽使用Drag & Drop系 阅读全文
posted @ 2012-02-06 16:33 dotNET程序猿 阅读(5257) 评论(1) 推荐(2) 编辑
摘要: Download Source - 123KB DataGridView是WinForm中非常灵活的一个控件,对于扩展其折叠功能的控件在网上已经有很多文章,但是只简要介绍了实现的方法,没有继续封装其他方法,比如数据绑定和增删功能,都需要在后置代码自己编写,加之复杂的业务逻辑,让代码显得冗余且不易复用。 在前人的基础上,利用封装好的CollapseDataGridViewRow和CollapseDataGridViewRowCollection类,对CollapseDataGridView进行了功能扩展,新增了几个泛型方法和委托事件,尽量降低了控件逻辑与业务逻辑的耦合。 新增了CollapseD 阅读全文
posted @ 2011-08-18 19:55 dotNET程序猿 阅读(12903) 评论(20) 推荐(13) 编辑
摘要: 在VS2008下封装WinForm自定义Loading控件。 AutoCircle.cs封装了旋转的圆形,直接在里面添加Label的话,计算圆形扇面的方法有点小复杂,所以在LoadingPanel.cs将AutoCircle和Label封装在一起。该控件中提供了当LoadingPanel状态变化时的事件public event RotateStateChangedHandler OnRotateStateChanged,当打开或关闭LoadingPanel时,可以用此事件来禁用/开启页面其他控件或做其他处理。 LoadingPanel暴露了几个属性可以对AutoCircle进行外观的设置 1. 阅读全文
posted @ 2011-08-16 15:36 dotNET程序猿 阅读(4929) 评论(3) 推荐(2) 编辑
摘要: “foo” 和“foobar”等单词经常会作为示例名称,出现在各种程序和技术文档中。据统计,在各种计算机和通信技术文档中,大约有百分之七的文档出现了这些词 语。可是这些文件都没有为它们给出合适的解释。虽然这不是个大问题,但对于初学者,尤其是母语非英语的人来说,这些单词往往会带来不小的迷惑。本文就介绍 一下这些单词的含义和来历。 虽然正式文件中对于“foo”的语源没有详细的记载,但我们仍可以从它的发展历史中,捋清一些脉络。 “foo” 一词最早出现在一些二战前的漫画和卡通作品中。在关于消防队员的漫画“Smokey Stover”中,作者Bill Holman大量的使用了“foo”一词。这部漫画. 阅读全文
posted @ 2011-05-27 10:39 dotNET程序猿 阅读(2003) 评论(0) 推荐(0) 编辑
摘要: 一、态度决定一切1、最高优先级应该是解决问题,而不是寻找罪魁祸首。指责不能修复Bug。2、欲速则不达:要投入时间和精力保持代码的整洁、敞亮。在不深入了解真正的问题以及可能的后果,就快速修改代码,这样只是解决表面问题,最终会引发大问题。3、对事不对人:不带个人情绪并不是盲目地接受所有的观点,用合适的词和理由去解释为什么不赞同。不要谴责,没有评判,只要简单表达自己的观点。因为负面的评论会扼杀创新。4、排除万难,奋勇前进:重构低质量代码或许需要很大勇气,但是如果你对此妥协,那么问题就会进一步恶化下去。在没有理解代码时,不要轻易地否定和重写它们。那不是勇气,而是鲁莽。二、学无止境:既要学习新技术、新方 阅读全文
posted @ 2011-05-23 09:11 dotNET程序猿 阅读(725) 评论(0) 推荐(2) 编辑
摘要: 项目继续进行中,在做人员管理模块时,遇到了工作人员可能重名的情况,如果多绑定几列来显示人员的区分信息,显得页面冗杂。就想到了用ToolTipService来显示一些区分信息,当用户的鼠标悬停到某行数据时,显示该行数据的一些详细信息。  从数据库中取出的人员信息的实例都放在一个List<T>中,在后台代码将之赋给ListBox的ItemsSource,前台进行数据绑定。最终呈现效果如下:... 阅读全文
posted @ 2010-09-19 15:02 dotNET程序猿 阅读(1546) 评论(3) 推荐(1) 编辑
摘要: 前段项目中遇到了用户图片上传问题,Silverlight仅支持jpg和png格式,无法满足用户对BMP和GIF格式上传的支持。再者就是需要在在客户端将图片转为byte[]格式,之后传回服务器并保存到SQL Server 2005中image类型的字段,查看了网上很多资料和风云的《银光志》,给出的方法不大适合当前项目的要求,所以综合大家的方法,支持了BMP图片格式,和客户端转化数据流的方法(没有支持... 阅读全文
posted @ 2010-09-11 21:54 dotNET程序猿 阅读(2823) 评论(3) 推荐(0) 编辑