
C#
qing2005
从事软件实施工作12年,熟悉软件工程和信息系统开发流程。能将用户需求和系统目标在软件实施中体现。从事项目管理工作四年多,从项目经理到产品经理,从项目整体管理到产品研发,从关注技术细节向关注行业、关注利润、关注成本、关注用户的满意度转变。<br>本人能独立编制各种技术文档,熟练绘制各种UML图,以及业务原型设计。并具备良好的沟通能力和组织协调能力,能带领团队取得阶段目标。
展开
-
WPF验证之——必填验证
要事先必填验证,首先要重写ValidationRule类的Validate方法,然后在Binding中指定对应的ValidationRule。第一步:重写ValidationRule的Validatepublic class RequiredValid原创 2011-07-04 22:59:54 · 11843 阅读 · 3 评论 -
解决DataDirectory路径问题
公司在做一个WPF项目,在开发调试的时候本地运行,在生产环境中以ClickOnce方式运行。问题是在一个数据库的连接字符串上,"……Data Source=|DataDirectory|\数据库文件……",在本地运行时|DataDirectory|指向程序目录,而在ClickOnce方式下指向程序目录下的Data目录。要解决此问题,必须要知道系统如何解析|DataDirectory|,经查阅是通过原创 2012-03-14 08:34:18 · 11511 阅读 · 0 评论 -
C#实现自动化Log日志
在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志信息),假设我需要跟踪业务方法,记录方法的传递参数,执行时间,返回数据等;或者我需要查看方法的调用关系,希望进入方法的时候自动记录参数信息,出方法时记录结果和执行时间信息。这时就是一个典型的AOP运用,Java在AOP方面是很容易实现的,因为java有原创 2012-03-19 14:07:32 · 38505 阅读 · 6 评论 -
解决EasyUI-Datagrid和LinqToEntity结合应用时排序问题
我们在做WEB页面时,时常会选择JQuery框架的Datagrid,如Ext、EasyUI、Flexigrid,数据访问则采用LinqToSQL或LinqToEntity。UI用Jquery框架的目的是代码简洁,较好的用户体验,漂亮的CSS;数据访问采用LinqToSQL或LinqToEntity的优点是开发便捷,将大部分的时间投入到业务中,而不是Ado.net的数据操作上。下图是UI和后台的交互原创 2012-03-23 11:33:39 · 5871 阅读 · 2 评论 -
解决使用NPOI在已有Sheet中插入多张图片问题
NPOI是操作Office的第三方组件,使用流方式,读写速度非常快。关于NPOI的更多认识,请见http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html我在实践中遇到在Sheet中插入图片的问题,参考http://www.cnblogs.com/atao/archive/2009/09/28/1576044.html,可以向She原创 2012-04-11 11:35:14 · 13879 阅读 · 3 评论 -
WPF分页DataGrid
最近用到WPF的表格控件,需要使用分页功能,找了很多例子都不是很满意。有些是模仿SL做的DataPager导航条,使用的时候还要和DataGrid组合使用,不是很方便。最好还是继承DataGrid的分页表格控件。 于是自己动手封装了一个分页表格。见图例:先说思路,然后说实现。为什么要使用分页这里不是讨论话题,分页表格需要知道两个结果:总记录数和分页数据集,所以必须暴露Total和ItemsSour原创 2012-05-29 15:24:48 · 24242 阅读 · 16 评论 -
WPF自定义正则验证控件
我在这里介绍一种自定义控件方式的正则验证方法。业务背景不做详细说明,这里以技术背景为主。思路:创建一个控件,使其具有文本框的特性外,还能就行正则验证;依据这个思路,来讲解实现。第一步:创建自定义控件因为要保留TextBox所有特性,所以就继承于TextBox控件即可public class RegexTextBox : TextBox { static RegexTextBox() {原创 2012-06-01 15:54:51 · 8893 阅读 · 1 评论 -
C#在Word中插入Html内容
同事遇到一个难题,就是在现有的Word模板中插入HTML内容,无论是HTML->Rtf,再插入Word,还是将HTML另存为xx.Doc然后用InsertFile插入都不是很好,格式会发生意外。因为HTML有两种,一种是纯网页标记,还有一种是doc->html,中间有很多微软的样式。研究了一下C#操作Word的方法后,又Google一下怎么在指定书签位置插入内容的方法,后面就是核心的操作问题了。思原创 2012-06-14 13:48:54 · 8970 阅读 · 5 评论 -
WPF分页DataGrid(二)列右键菜单实现
在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。见下图:点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。要实现功能需要在Loaded事件时给列添加右键菜单。public class PagingDataGrid : DataGrid { …… void PagingDataGrid_Loaded(object sender, Ro原创 2012-06-21 15:46:11 · 12965 阅读 · 1 评论 -
EasyUI 1.3.1 datagrid动态绑定列名和数据
很多网友对【easyui datagrid动态绑定列名和数据 】存在很多疑惑,实验后不能成功,这是因为不同版本的EasyUI源码不同。我就最新的版本的EasyUI 1.3.1做了示例,并简化了后台代码实现。简单介绍一下,动态绑定列名的业务场景:当系统存在角色、权限信息时,可能需要对表格进行字段权限分配,举例说:A角色能查看员工表A、B、C、D字段,B角色能查看员工A、B、D、F、G字段,C角色能查原创 2012-12-13 08:51:06 · 10940 阅读 · 5 评论 -
使用LinqDataSource案例
今天在看了LinqDataSource控件后,试着想实现一个Demo,在Northwind数据库Customers表中,查找指定字母开始的CustomerID信息。效果图:实现思路:1.下拉列表绑定CustomerID中的首字母2.GridView中绑定对应的首字母的CustomerId的Customers信息第一个看似简单的操作,却用了我一个多小时。Customer ID:<asp:Li原创 2012-02-27 22:16:19 · 8181 阅读 · 2 评论 -
WPF三级联动
WPF实现三级联动Grade-->Class-->Student,数据来自Access,采用LinqToAccess,已封装成DLL,数据库在附件中。见图:Code:Window x:Class="Demo16_MasterDetailBinding2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/原创 2011-04-20 16:41:00 · 5077 阅读 · 3 评论 -
WPF中忽略代码和标记
最近开发的一个WPF项目使用了Prism架构,在设计时经常无法正常显示界面,很让人郁闷。但是运行时是好的。这也不难理解,由于Prism需要使用反射等技术,在设计时不可能正常获取信息,当然无法显示界面。偶然见看到可以通过DesignerProperties.GetIsInD原创 2011-07-12 17:57:15 · 2889 阅读 · 0 评论 -
MVVM中轻松实现Command绑定(二)传递Command参数
我们如果需要在Command中传递参数,实现也很简单。DelegateCommand还有一个DelegateCommand版本,可以传递一个T类型的参数。1.View的Button绑定,其中CommandParameter定义了一个“20”的参数<Win原创 2011-07-12 21:03:47 · 44571 阅读 · 3 评论 -
WPF数据国际化解决方案
在WPF中界面国际化很容易实现,但是数据国际化确实是一个难题。为了解决项目中的需求,我设计了解决方案。思路:1.在数据库中,需要国际化的字段存放国际化key值;2.在xaml中创建多套国际化,key为数据库中的值;3.切换国际化时,加载不同的xaml;4.通过原创 2011-07-22 23:36:36 · 8069 阅读 · 1 评论 -
MVVM中轻松实现Command绑定(四)获取事件参数EventArgs
从原则上说ViewModel中不应该获取View的信息,但是事实是在特殊场合需要,比如正确提交后需要关闭判断,如果ViewModel+View的后置代码实现比较麻烦,希望在ViewModel中一并完成。我在网上看到MVVM Light框架中有一种方法可以实现,但必须使用它的dll原创 2011-07-23 18:37:04 · 18908 阅读 · 5 评论 -
ViewModel之间的通讯
WPF中时常会遇到ViewModel之间的通讯,ViewModel并不知道自己的View,但是一个View发生的更改需要通知另外一个View。举一个例子,软件界面上有个人信息,打开一个界面更改用户的信息后,这时显示个人信息的地方理应发生变化。此场景下更改用户后应该通知另一个显原创 2011-07-27 23:02:01 · 13196 阅读 · 2 评论 -
MVVM中轻松控制ProgressBar
MVVM中要控制进度条其实很方便,但是在开始之前我们要解决一个线程问题。首先WPF的应用程序至少有连个线程,一个是管理UI的线程,一个是绘制UI的线程。我们需要实现类似下载进度的显示,下载线程不能和UI线程相同,否则顾此失彼。一定要创建一个新线程执行操作。通常我们使用Thread原创 2011-08-03 23:11:38 · 8955 阅读 · 1 评论 -
MVVM中轻松实现Command绑定(五)获取事件参数EventArgs(2)
在上一节中我介绍了“MVVM中轻松实现Command绑定(四)获取事件参数EventArgs”,通过Loaded事件传递控件对象,然后添加事件方法,这样做是可以的,但是不符合MVVM的思想,今日我介绍另一种方法,通过扩展interactivity的InvokeCommandAct原创 2011-08-11 20:48:22 · 25903 阅读 · 14 评论 -
WPF使用装饰器实现SAP焦点样式
SAP当焦点进入控件时,会在控件的四个角上出现红框,见下图示例。 要实现这样的功能是有点难度的,幸好WPF提供了装饰器这个玩意,实现起来就容易了。先说一下思路:1.重写控件的装饰器;2.指定窗体上的所有控件使用自定义的装饰器;3.当控件获得焦点时显示装饰器。现在,第一步重写装饰器原创 2011-09-29 11:50:13 · 4822 阅读 · 0 评论 -
WPF使用装饰器实现SAP焦点样式(改进版)
我在上一篇博文中介绍了如何使用自定义装饰器实现SAP的焦点样式。上次的思路是遍历窗体中的控件,如果是指定类型则使用自定义的装饰器。但是如果要求部分控件使用自定义装饰器,或者用户控件中的控件也要实现,上一种方法是无法完成的。看了MSDN的中“AdornerDecorator“类能为 “可视化树”中的子元素提供 AdornerLayer。用法: Child那么是否能自定义一个AdornerD原创 2011-10-28 14:13:35 · 6060 阅读 · 1 评论 -
asp.net mvc数据标记国际化
初用asp.net mvc3 和 4,发现asp.net mvc提供非常好框架,今天在做例子的时候想到标题国际化问题,比如:Albums中有AlbumArtUrl属性,我希望在中文环境下显示“专辑艺术家地址”,而在英文环境下显示“Album Art Url”,为了解决这个问题需要如下步骤:1.创建一个自定义的标记,将国际化KEY存入其中;2.View上改造原有的@Html.LabelFor(mod原创 2013-02-26 15:03:21 · 5495 阅读 · 0 评论