- 博客(29)
- 收藏
- 关注
原创 C# CM框架下一行代码实现多页面管理
之前我分享过一个wpf的项目实践,主页面左侧是个listbox,每次选择改变后呈现对应的页面,界面图如下:
2023-06-05 00:00:00
242
原创 C# WPF DataGrid获取单元格并改变背景色
WPF 自带了一个表格控件datagrid,这个控件类似winfrom中的datagridview,在数据显示的时候也经常会用到,这节主要讲解如何从后台代码获取到单元格控件并改变其相关属性:背景色、前景色、字体等。
2023-06-04 00:00:00
1931
原创 C# VS生成后事件命令行
在大型的项目开发中,往往个人只承担一部分内容的开发,我们可能生成的只是一堆动态链接库(DLL),这些类库文件无法单独启动调试,而只有嵌入到公司项目的部署路径中才可以运行,这样需要我们每次生成后都得手动copy生成文件到公司项目的部署路径,这样调试起来就不太方便,这时候如果我们借助生成后事件命令行就可以省略上述步骤实现生产时自动部署。这样每次我们的项目点击了生产菜单后,生产的项目就被自动拷贝到了目标路径下,省去了不必要的手动操作。中设置项目生成后执行的脚本,从而实现项目文件生产后的自动部署。
2023-03-29 00:00:00
596
原创 C# WPF MVVM模式Prism框架下事件发布与订阅
处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行通讯,且彼此之间没有引用,这就实现了模块之间低耦合的通信方式。Prism的事件聚合器,这玩意实现原理是观察者模式,观察者模式也就是常说的发布/订阅模式。这样,一个发布/订阅的事件就完成了,也可以在任何时候取消事件注册,只需要调用Unsubscribe方法即可。由于它是多播的,你可以在任意多个地方进行发布或订阅。
2023-03-28 15:37:53
865
原创 C# 正则表达式编写及验证方法
正则表达式应用很广泛,应该大多人都接触过了,这个语法规则既多又凌乱,每次用的时候都得重新看一遍语法,真的是让人头疼啊!但是实际上我们并不要掌握很多的符号用法规则,牢记最常用的几个就能应付很多场景.regexString = @"^((\d|[1-9]\d)(\.\d{1,3})?{n,m} m 和 n 均为非负整数,其中n <= m。如果运行错误,会输出没匹配上的数值,这个说明编写的正则没问题!① [0,1000]: 闭合区间0到1000,不包括小数。②[0,100]:闭区间,包括小数点后三位。
2023-03-17 00:00:00
174
原创 C#如何获取实体类属性名和值?
set;set;set;set;set;set;这里定义了一个user类,分别是姓名、性别、和年龄,类中又嵌套了一个学生类。
2023-03-16 00:00:00
496
原创 C# WPF 实现Tab页动态增减
但是针对页面需要动态增减的场景,这种方法就不再适用了,下面就针对这种情况进行讲解./// Headerset;/// 姓名set;set;这里定义了一个标题Header ,用户名UserName ,以及另外个ViewModel类set;
2023-03-15 00:00:00
767
原创 C# =>符号的使用
主要是为了外部访问的安全性封装字段,get set你自己可以设置限制条件,尤其是wpf绑定时,没有get set属性,界面是更新不了的。写上get,set这种访问器的叫属性,不写的叫字段,属性是proprerty,字段叫field。在上面的代码中,+=是在委托链上增加一个委托,(s,e) =>是一个lambda表达式,这个表达式创建一个委托,委托处理的主体就是=> 后面的部分。其实在这里=>的用法相当于 { get;Lambda表达式是C#3.0的新内容,如果您之前学习的C#2.0,不认识也就不奇怪了。
2023-03-14 00:00:00
487
原创 C# WPF控件ComboBoxEdit数据绑定及模糊匹配
C#纯小白票友,求一个WPF的combobox自动完成。就是在文本框输入字符(包括中文),下拉框的自动过滤出符合条件的项目列表?step1:打开vs,创建一哥应用程序,我这里命名为ControlTest;step2:定义数据模型,我这里定义为一个枚举量(如果是类的话会更容易点)step6:在KeyUp事件中进行输入匹配,匹配不到就重新绑定全部枚举量。首先combobox默认是不允许编辑的,需要打开编辑功能那个需要。step4:编写方法,将枚举量添加到集合中。群友特意提到中文,那枚举量就给个中文吧。
2023-03-13 00:00:00
1230
原创 C# 通过正则表达式来限制控件输入有效性
界面上允许用户输入的控件,大多是有一定限定的,比如电话号码,只允许11的数字,比如一些算法参数有取值范围限定,比如只允许[1,255]等,这种情况如果等用户输入运行后再在后台验证数据的有效性,不仅低效率而且繁琐,dev有一些控件则支持正则表达式,可以限定用户输入,这样就会很方便,这节就举例讲解两个dev常用且支持正则的控件TextEdit和GridControl。TextEdit是dev中常用的文本编辑框。这里将文本输入的有效值限定到[1,255]
2023-03-12 00:00:00
396
原创 C# 使用 CancellationTokenSource 终止线程
使用CancellationTokenSource对象需要与Task对象进行配合使用,Task会对当前运行的状态进行控制(这个不用我们关心是如何孔控制的)。我们在多线程中通常使用一个bool IsExit类似的代码来控制是否线程的运行与终止,其实使用CancellationTokenSource来进行控制更为好用,下面我们将介绍CancellationTokenSource相关用法。我们还可以使用计时取消任务,当一个任务超过了我们所设定的时间然后自动取消该任务的执行。运行起来效果是一样的,3秒钟定时取消。
2023-03-11 08:38:23
1072
原创 C#使用线程窗口调试多线程程序
调试多线程程序一般有以下几种办法1、在日志的某个地方写日志文件。优点:不会干扰程序的执行,特别是对网络的多线程通信。缺点:每次都需要打开日志文件以查看进程运行的信息。
2023-02-28 00:00:00
438
原创 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
MEF是微软自家的托管可扩展框架,在这里我把它用成了ioc容器。在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中,然后通过名称可以实现view和viewmodel的匹配。利用这一特点,在多人合作项目开发中,一个解决方法就可以拆分成很多个项目,只用在主项目中搭建框架,每个分支项目开发好以后加载到容器中,就可以实现界面和逻辑的调用,可能这样解释有点生涩,具体我们看下面实例再去理解。
2023-02-27 00:00:00
458
原创 C# WPF MVVM模式Prism框架从零搭建(经典)
目前最新的PRISM的版本是8.1.97,本节以6.3.0.0 讲解,可以在Github上获取PRISM的源码。
2023-02-26 00:00:00
1609
原创 C#实用技巧之:将图标打包进DLL并读取
个人的项目界面有时候需要用到很多图标,这些图片可以建立一个文件夹单独存放,但有时涉及到多台设备部署的话,每台设备都需要随项目一起拷贝过去,如果忘记了界面显示就会出问题,有没有更好的办法解决?
2023-02-25 00:00:00
407
原创 C# 两个独立exe程序直接通信
这篇文章主要说明一下,如何利用发送消息使两个 exe 完成通信。这次的 demo 分为两个部分,发送端和接收端。
2023-02-11 20:09:11
761
原创 C# 实例解析事件委托之EventHandler
事件属于委托的一个子集,像我们平时界面上的鼠标点击按钮后响应事件、事件的发布和订阅等都需要用到委托.通过委托可以很好的实现类之间的解耦好。事件委托EventHandler的
2023-02-11 19:53:22
392
原创 C# WPF 用代码画一幅图(*精品*)
有时候我们的程序界面中需要显示一些简单的示意图,一般我们有原图的话直接嵌入我们程序就可以,但有时候我们没有原图,这时候我们不妨用代码自己画出来.
2023-02-11 19:53:11
182
原创 C# WPF TabControl控件用法详解
C# WPF TabControl用法指南(精品),上节主要讲解了tabcontrol控件的左右翻页,以及页面筛选,以及数据绑定等内容,这节内容继续接续上节内容进行扩展讲解,主要针对页面删除、增加以及对应的事件进行讲解。
2023-02-11 19:53:01
1739
1
原创 C# WPF通过反射及Ioc容器加载并显示其它项目界面(精品)
这节主要通过发射+Caliburn.Micro自带的ioc容器实现加载并显示其它项目中的界面
2023-02-11 19:52:02
504
原创 C# WPF TabControl用法指南(精品)
TabControl是我们常用的翻页控件,但是wpf自带的 TabControl功能和样式比较单一,假如我的tab页面比较多,标题在有限的空间放不下,需要用左右箭头翻页,同时需要加一个筛选跳转的功能,这时候我们就需要使用Dev的控件DXTabControl.
2023-02-11 19:51:22
641
原创 C# WPF 画图
有时候我们的程序界面中需要显示一些简单的示意图,一般我们有原图的话直接嵌入我们程序就可以,但有时候我们没有原图,这时候我们不妨用代码自己画出来.
2023-02-11 19:50:23
676
原创 C# WPF多页面间的数据共享(经典)
实现页面间的数据共享有很多方法,比如:①事件的发布订阅 ②委托③ioc容器④静态类等,这节主要通过静态的集合实现数据的添加和获取。
2023-02-11 19:50:05
487
原创 C# WPF GridControl用法举例
GridControl是Dev中的表格控件,类似于Winfrom中的DataGridView,以及WPF中的DataGrid,但是这个控件功能比原生的功能要强大很多,下面用实例举例说明此控件的用法.
2023-02-11 00:00:00
379
1
原创 C# XML序列化和反序列化(XmlSerializer)
XML序列化和反序列化是C#的常用技术,实现的方式有很多种,序列化即将对象转化为便于传输的数据格式, 常见的方法有:二进制,字节数组,json字符串,xml字符串等。今天主要通过XmlSerializer类的Serialize和Deserialize方法实现.
2023-02-10 18:21:04
725
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人