摘要: 需要判断Char是否为数字,查看了下MSDN,发现有三种方法:Char.IsDigit (aChar) 指示指定字符串中位于指定位置处的字符是否属于十进制数字类别Char.IsNumber(aChar) 指示指定字符串中位于指定位置的字符是否属于数字类别aChar>='0'&&aChar<='9' 判断aChar是否位于‘0’到‘9’之前 等同于第一种用.NET Reflector 查看其实现代码:publicstaticboolIsNumber(charc){if(!IsLatin1(c)){returnCheckNumber(Ch 阅读全文
posted @ 2012-05-29 11:03 JunBird 阅读(4754) 评论(0) 推荐(1) 编辑
摘要: WPF判断命令(Command)是否能够执行是通过ICommand.CanExecute事件,在实际程序中路由命令一般是通过CommandBinding来使命令得到实际操作代码,但是这个CanExecute事件的调用是由WPF控制的,有些时候,比如命令执行后进行一些异步耗时操作,操作完成后会影响CanExecute事件结果,但是WPF不会立即做出反应,那么这个时侯就需要手动调用CommandManager.InvalidateRequerySuggested对命令系统进行一次刷新。比如下面这个小程序<Window.CommandBindings><CommandBinding 阅读全文
posted @ 2012-05-09 09:49 JunBird 阅读(3919) 评论(0) 推荐(1) 编辑
摘要: 最近用MVVM编写UI,Command是个好东西,其调用地点也较灵活,根据当前实际使用情况,将使用频率比较高的几个调用点总结一下,相关使用实例会在后续总结中给出:1. Xaml中直接通过控件的Command Binding调用;2. Xaml中使用“EventToCommand”调用,其好处是可以通过控件的各种事件转换为Command进行调用,较常用于窗体初始化事件或没有相关Command的控件;3. Code-Behind中通过控件的DataContext找到相应ViewModel ,对该ViewModel 的相关Command进行调用;4. 在ViewModel的Manager中由Mana 阅读全文
posted @ 2012-04-20 16:29 JunBird 阅读(2860) 评论(0) 推荐(1) 编辑
摘要: 声明:本文内容主要摘译自Nauman Leghari的Using log4net。请在这里下载示例代码 1 简介1.1 Log4net的优点:几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。另外,日志信息可以输出到不同的地方(控制台 阅读全文
posted @ 2012-04-14 17:50 JunBird 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 为了在屏幕上绘制一个图形,WPF需要知道你想要为图形填充什么颜色以及如何绘制它的边框。WPF提供了一些Brush类型支持各种绘图样式。Pen类增加这些笔刷以提供边框的厚度和样子。在这一章,我们将要看一下各种类型的笔刷和钢笔类。可是,由于所有的笔刷和钢笔类最终是关于指出在哪里使用哪一种颜色,以及如何将它们联合在一起,我们必须首先看一下眼色是如何被表示的。7.3.1 颜色WPF在System.Windows.Media命名空间中使用了Color结构来表示一种颜色。注意到如果你以往工作于Windows Forms、ASP.NET或GDI+,Color机构是不同于那些技术使用的机构的——它们使用了Sy 阅读全文
posted @ 2012-04-12 12:46 JunBird 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: List <T>是ArrayList的泛型,ArrayList里边的数据类型是object,List <T>里边的是具体的某种类型,ArrayList类似于向量,可以存储不同的数据类型在一个数组里边(转换为了object)。 一般使用的时候尽量使用List <T>,因为ArrayList存取都要进行一次转换。 []类型的数组类似于List <T>,不同的是[]是定长的,而List <T>是长度可变的数组ICollection主要针对静态集合;IList主要针对动态集合 IEnumerable <T>继承自IEnumerab 阅读全文
posted @ 2012-04-10 00:22 JunBird 阅读(4607) 评论(0) 推荐(0) 编辑
摘要: 我们通常会碰到在DataGird的第一列(或某一列)自动显示该行行号的需求,如下图分析这个问题我们需要两步走向数据源添加数据时自动显示行号从数据源删除数据时自动更新所有行号首先做一些准备工作,我们需要为DataGird自定义第一列的单元格<data:DataGridTemplateColumn> <data:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock /> </DataTemplate> </data:DataGridTemplateColumn. 阅读全文
posted @ 2012-04-09 19:24 JunBird 阅读(5842) 评论(0) 推荐(0) 编辑
摘要: Nerdr.com上的一篇文章说”Stackoverflow让黑客变懒了“(不好意思,没找到作者名字),文章大意是,作为一个黑客,在有Stackoverflow之前,他是这样寻找答案的:有了一个拉风想法试着实现它遇到困难阅读这个领域以及语言相关的书籍找到点什么尝试,失败继续阅读更多,失败更多如此重复直到最后找到答案,同时在这个过程中,你会学到10个以前根本不知道的新知识,而这些新知识将会促成下一个拉风的项目。但是自从有了Stackoverflow,这一切都变了:有了一个拉风想法试着实现它遇到苦难去StackOverflow发帖泡杯茶刷新问题页面从答案中复制粘贴代码一边啜着茶一边编译代码如此重复 阅读全文
posted @ 2012-04-09 13:21 JunBird 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采用的是“四舍六入五成双”的方法,如下面的例子,就是用“四舍六入五成双”得到的结果:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->double d1 = Math.Round(1.25, 1);//1.2double d2 = Math.Round(1.24, 1);//1.2double d3 = Math.Round(1.26, 1);//1.3double d4 = Math. 阅读全文
posted @ 2012-04-07 15:33 JunBird 阅读(33657) 评论(2) 推荐(1) 编辑
摘要: 如果单纯在Button中使用命令绑定,则其本身就带有Command属性,但是扩展到任何其它控件,就得稍微复杂一点。依赖于我们拥有如下两个dll:Microsoft.Expression.Interactions.dllSystem.Windows.Interactivity.dll这两个dll在装完毕expression blend后会出现在引入列表中。不过,即便我们没有装blend,也可以直接从其它地方COPY过来。 阅读全文
posted @ 2012-04-07 14:47 JunBird 阅读(1198) 评论(0) 推荐(0) 编辑