06 2018 档案

摘要:WPF程序,用于平板时,一些输入数量的地方我们需要弹出小键盘输入,这个键盘可以调系统的,也可以自己写。 分享个我现在用的一个数字键盘界面。 后台cs文件代码: 当然触摸屏上也可以直接调用系统键盘。 有时候因为权限问题,不可以直接调用系统盘下面的键盘。我们可以将osk.exe拷贝到程序根目录下再调用。 阅读全文
posted @ 2018-06-20 14:28 liuyong111 阅读(3634) 评论(0) 推荐(5)
摘要:AutoMapper可以很方便的将一个实体的属性值转化给另一个对象。这个功能在我们日常的编码中经常会遇到。我将AutoMapper的一些基本映射功能做成扩展方法,在编码中更方便使用。 这个静态类中有4个扩展方法,分别对Object类型,IEnumberable类型,DataTable类型添加了Map 阅读全文
posted @ 2018-06-20 11:15 liuyong111 阅读(1846) 评论(0) 推荐(0)
摘要:/// /// 判断是否有交集 /// /// /// /// /// public static bool IsArrayIntersection(List list1, List list2) { List t = list1.D... 阅读全文
posted @ 2018-06-20 10:57 liuyong111 阅读(4834) 评论(3) 推荐(0)
摘要:/// /// 通过NetworkInterface读取网卡Mac /// /// public static string GetMacByNetworkInterface() { List macs = new List(); NetworkInte... 阅读全文
posted @ 2018-06-20 10:55 liuyong111 阅读(559) 评论(0) 推荐(0)
摘要:我们在用ORM(比如dapper)的时候,很多时候都需要自己写Model层(当然也有很多orm框架自带了这种功能,比如ef),特别是表里字段比较多的时候,一个Model要写半天,而且Model如果用于MVVM中,我们还需要添加PropertyChanged触发代码。发现t4模板可以自动生成代码,于是 阅读全文
posted @ 2018-06-19 16:32 liuyong111 阅读(6157) 评论(2) 推荐(0)
摘要:在用EF DBFirst时,实体类是从数据库自动生成的,与DBContext放在同一个项目中。这样其他项目想引用实体,就会将数据库操作类暴露出来。所以,我们需要将实体分离。 新建项目EFAccess,并新建Ado.net实体数据模型 image.png image.png 删除自动生成的Model1 阅读全文
posted @ 2018-06-19 16:08 liuyong111 阅读(894) 评论(0) 推荐(0)
摘要:看MVVMLight的Messager源码,自己实现了一个简单的Messager类。 Messager类可以在MVVM中,实现View与VM、VM与VM、View与View的通信。 主要通过Register方法来注册,Send方法来触发。 比如,VM中需要显示一个窗体,为了不破坏MVVM模式,我们可 阅读全文
posted @ 2018-06-12 14:18 liuyong111 阅读(911) 评论(3) 推荐(0)
摘要:这两天试了下Stylet框架,这个框架虽然很小,但是功能齐全,简化了很多MVVM的代码,比如Command,对Dialog,MessageBox都有很好的支持。 开源地址 https://github.com/canton7/Stylet 新建一个WPF项目,添加NuGet引用 安装完成后会自动添加 阅读全文
posted @ 2018-06-06 17:36 liuyong111 阅读(4632) 评论(3) 推荐(3)
摘要:LRUCache是Least Recently Used 近期最少使用算法的缓存,是android提供的一个缓存工具类。可以以两种排序方式来输出缓存,一种是按插入顺序输出,一种是按最近最少方式输出,最近使用的放在队首,使用频率低的,间隔时间最长的放在队尾。 下面是实现 构造函数中传入缓存大小和输出缓 阅读全文
posted @ 2018-06-05 11:41 liuyong111 阅读(508) 评论(0) 推荐(0)
摘要:在窗体或用户控件中重写CreateParams MSDN上对CreateParams的解释: image.png image.png 阅读全文
posted @ 2018-06-05 11:28 liuyong111 阅读(1996) 评论(0) 推荐(0)
摘要:Dapper.net的速度很快,最近看源码,原来他orm的实现是通过编写大量IL代码实现的。 使用DynamicMethod,自己编织一个给实体赋值的方法。这种写法效率很高,接近直接对属性赋值。比使用反射赋值效率高10倍左右。 下面分别使用Emit,反射,直接赋值100000次来进行对比测试。 下面 阅读全文
posted @ 2018-06-01 09:54 liuyong111 阅读(930) 评论(1) 推荐(3)