- 博客(201)
- 资源 (9)
- 收藏
- 关注
原创 wpf线程中更新UI的4种方式
总结:通过案例,可以了解到,上面4种方式,对于此案例来说都可以达到最终的效果,但是那一种效果最好,并没有体现出来。博主认为:第三种最好,原因是从这个需求上考虑的,因为需求需要更新的就是txtUsername上面的数据,那么直接作用于它,对于资源的耗损,将是最少得。在wpf中,更新UI上面的数据,那是必经之路,搞不好,就是死锁,或者没反应,很多时候,都是嵌套的非常深导致的。但是更新UI的方式,有很多的种,不同的方式,表示的意思不一样,但是眼睛看到的,似乎是一回事。点击确定后,和前面的效果是一样的。
2024-05-04 17:14:16 640 2
原创 C#中.net8WebApi加密解密
尤其在公网之中,数据的安全及其的重要,除过我们使用jwt之外,还可以对传送的数据进行加密,就算别人使用抓包工具,抓到数据,一时半会儿也解密不了数据,当然,加密也影响了效率,肯定不如明文传递的效率高。此时,数据已经加密成功了。可以传递给前端进行使用了,前端拿到再进行解密。我们把刚才的字符串传递进去,然后在程序内部调试,能看得到数据。6.写一个获取到前端加密的字符串,然后进行解密。写一个GetStudent()方法,进行加密。在程序内部,看到了数据,说明解密成功。3.建立加密,解密的方法。
2024-05-04 16:48:36 471
原创 uniapp开发小程序手写板、签名、签字
但是目前这个插件没有vue3 setup Composition API的写法。所以对于此文档提供的可以直接使用,需要使用Composition API方式实现的,可以继续看。因为Composition API方式,更加的简单、灵活,在今后的编程之中要多用、多学,这样才能写出更加健壮的代码。2.把index.vue的代码直接替换一下。5.其中压感关和开,是增加笔画粗细的设置。1.首先建立一个可以运行的小程序。可以使用这个插件进行操作。3.微信开发工具运行效果。4.手机真机调试效果。
2024-04-13 14:37:03 548 4
原创 WPF中DataGrid主从数据(父子数据)展示
这里要说明一下,第二个DataGrid中,就算定义了Name,也是不能访问的,因为属于控件里面的控件,访问的话,需要用可视化树或者逻辑树的方法,就比较复杂了。此处需要注意的地方,就是RowDetailsVisibilityMode的属性,有3种方式,展开、收缩和当选择的时候展开。在wpf中可以使用DataGrid控件,进行主从数据展示,也称父子数据展示。点击图标,展开和收缩可以自由的切换,也可以自己重新写一个样式,比如+,-或者类似图标的样式,都是可以的。2. 前端界面xaml。
2024-04-13 14:36:37 435
原创 uniapp开发小程序生成和扫描二维码
真机调试的话,就可以把刚才的二维码的内容扫出来。在微信开发者工具里面,扫码是打开文件夹的操作。安装了cnpm后,使用cnpm命令也行。uniapp中生成二维码和扫码二维码。3. 安装成功后,在这里就能看到了。5.使用微信开发者工具运行效果。1.首先建立一个可运行的小程序。2. 安装uqrcodejs。7.二维码生成了,下面说扫码。6.使用真机调试运行。
2024-03-31 22:13:45 507
原创 C#.net8创建webapi,使用SqlSugar,仓储模式,DTO,服务层,控制层的综合应用(企业级)
这是一个综合性比较强的文章,需要有一定的基础,没有基础的人,看了后,会全面的了解一下,有基础的人,看了后会加强认识,更加的巩固,直接在项目中去应用,如果做C#开发,这将是一个全面的技术能力应用。每一步,都非常详细,按照步骤可以把各个技术点,进行全部串联起来,形成一个技术矩阵,面对所有技术难题。13. 建立IProductService。14.建立ProductService。9.添加AutoMapper以及配置。12.建立IBaseService。7.安装 AutoMapper。
2024-03-31 13:29:24 690 5
原创 uniapp开发微信小程序分包问题
当我们开发完成小程序后,上传时,出现上传失败,此时就需要我们进行分包处理。5.1这里我配置的就是pages的,里面1个首页,2个tabBar页。此时,这里就出现了主包和分包,就已经表示分包完成了。除过第一个pages,后面4个都是要进行分包的。pages里面,必须放首页和tabBar的页面。5.2剩下的4个分包,都按照这个格式进行配置。可以看到都是主包,表示没有进行分包处理。后面的4个都是分包,分别当做一个整体包。参考第一个,就可以配置其他页面了。我们可以点击本地代码,进行查看。
2024-03-30 10:58:28 92
原创 uniapp开发小程序实现-获取微信账号(三)
还有这个方法:getUserProfile(),就不一一吐槽了,原因就是上面的说的,被收回了,所以,你之前学会的方法,现在已经不适用了。5.当你把3篇文章都看完了后,就彻底明白了,这玩意儿还是挺复杂的,没错,是挺复杂,我们只要微信登录,居然要访问这么多接口才行。效果图,这是后端返回微信的信息,这也是最重要的,突然一看,感觉不是自己要的,后面进行展开说明。这里有些废弃的用法,坑有点多,并且文档说的和返回的都不一样。一共就这么多参数,就可以进行下一步业务逻辑的展开了。一共3篇文章,共同描述,看序号进行寻找。
2024-03-10 16:20:33 680
原创 uniapp开发小程序实现-获取手机号码(二)
所以没有企业账号的,就可以不用看了,申请企业账号去官网申请就行了,申请成功了后,我们接着看。你的微信绑定的电话号码,自己一看就明白了了,我的是176开头的。3.3获取的用户手机号userPhone。一共3篇文章,共同描述,看序号进行寻找。3.2获取accessToken信息。3.对代码的返回值进行解释。主要看返回的值是不是ok。4.最终的效果就是这样的。3.1回调返回的信息。
2024-03-10 14:59:40 270
原创 uniapp开发小程序实现-获取/修改头像昵称(一)
当然这些文档一个关联一个,还有版本升级的问题,微信自身还调整了函数,非常的复杂难理解,不过我已经看完了,直接贴代码,拿去用就行了。六,当你以为要完成的时候,此时在微信开发者工具可以运行,但是真机上面运行不了。3.可以点击上面的“使用其他头像和昵称” 进行重新修改头像和昵称。这步我也没搞清楚,误打误撞上了。此时,就可以在微信开发者工具和手机上直接运行了。一共3篇文章,共同描述,看序号进行寻找。四,最最主要的地方是调试基础库。4.登录成功,显示昵称和头像。一,建立一个运行的空项目。先看效果图,真机效果。
2024-03-09 23:10:21 680
原创 .net6Api后台+uniapp导出Excel
后端和之前的不一样,前端也和之前的不一样,只是功能看起来是一样的,实现的方法截然不同,本次的方法更加的简单。在现在看来似乎搞的复杂了,本次记录一下.net6Api后台+uniapp导出Excel。之前的这个是vue3写法,后端是.net6Api。运行uniapp,同时开启后端的webapi。第一种使用的是file-saver。第二种使用的是document。此时,点击下载文件,就可以了。一.后端,.net6api。运行webapi的效果。二.前端,uniapp。使用的是EPPlus。
2024-03-09 21:28:45 659
原创 uniapp中配置开发环境和生产环境
uniapp在开发的时候,可以配置多种环境,用于自动切换IP地址,用HBuilder X直接运行的就是开发环境,用HBuilder X发布出来的,就是生产环境。需要在根目录中,自己加上这个文件,但是这个a.js的内容就不是上面的内容了,因为此处就把a.js当做静态的文件,需要修改成直接赋值的内容。也可以直接把IP地址写死,然后直接访问JSON文件的内容也行,使用的时候,随时都可以进行修改。上面的操作,只能在开发环境下使用,肯定没有问题的,当我们发行的时候。将会生成静态的文件,此时刚才的a.js就没有了。
2024-02-04 21:20:41 1467
原创 uniapp中使用EelementPlus
uniapp中有很多自带的UI,在创建项目的时候,就可以自由选择。而EelementPlus是一个前端的框架,主要是开发web的,其实他们是可以放在一起使用的,因为都是基于vue.js的。有了上面的操作,今后我们进行开发时,移动和网页的混合开发,就非常的方便,加上权限控制,想怎么显示,就怎么显示了。uniapp的强大是非常震撼的,一套代码可以编写到十几个平台。对比可见,颜色的主题还是不一样的,此时我们就完成了在uniapp中使用element-plus的操作。8.对于不同的平台,界面显示不同的控件。
2024-02-04 21:13:04 2014
原创 wpf使用Popup封装数据筛选框--粉丝专栏
本案例使用wpf原生控件封装,功能基本上都满足,只是颜色样式没有写,自己可以根据风格自定义,这个也不难,都是基础控件的样式,还可以在功能3里面自己拓展其他功能。至于样式风格问题,可以参考之前的文章,对DataGrid控件进行美化,也都是原生开发。以上效果只对“测试姓名”一列进行刷选,其他列都是同理,移植即可。2.UserControl1.xaml中的代码。类似于DevExpress控件的功能。总的来说,这个还是很简单的。
2024-01-13 20:53:37 568
原创 wpf使用Popup封装数据筛选框
本案例使用wpf原生控件封装,功能基本上都满足,只是颜色样式没有写,自己可以根据风格自定义,这个也不难,都是基础控件的样式,还可以在功能3里面自己拓展其他功能。至于样式风格问题,可以参考之前的文章,对DataGrid控件进行美化,也都是原生开发。以上效果只对“测试姓名”一列进行刷选,其他列都是同理,移植即可。(关注博主后,在“粉丝专栏”,可免费阅读此文)2.UserControl1.xaml中的代码。类似于DevExpress控件的功能。总的来说,这个还是很简单的。
2024-01-13 20:47:51 269
原创 c#多线程中使用SemaphoreSlim
4.我们对比方法一和方法二发现,他们的结果都是一样的,但是lock似乎比SemaphoreSlim更加的高效,是的,lock解决此业务的确比SemaphoreSlim高效。SemaphoreSlim是一个用于同步和限制并发访问的类,和它类似的还有Semaphore,只是SemaphoreSlim更加的轻量、高效、好用。当我们在第1步,只需要增加一句话,不增加lock和SemaphoreSlim,依然可以使得计算的结果准确,那就是增加。当我们增加SemaphoreSlim后,不管运行几次,结果都是正确的。
2024-01-12 21:30:41 1382
原创 .net6使用Sejil可视化日志
在程序非常庞大的时候,日志的作用就尤其的重要,日志能快速的定位程序的问题,从而高效率的解决问题。本文介绍使用Sejil来查询可视化日志。(关注博主后,在“粉丝专栏”,可免费阅读此文)其中LogLevel.Information是日志的等级。这篇文章将会更加的简单,最终的效果都是可视化日志。5.在原api的IP地址后面增加Sejil即可。1.创建一个.net6程序,安装Sejil。也可以在控制台程序中看到输出的日志。2.在Program.cs中增加。3.在控制器中增加日志。这是Sejil的介绍。
2023-12-24 15:39:08 970
原创 WPF中DataContext的绑定技巧-粉丝专栏
(关注博主后,在“粉丝专栏”,可免费阅读此文)先看效果:上面的绑定值都是我们自定义的属性,有了以上的提示,那么我们可以轻松绑定字段,再也不用担心错误了。附带源码。
2023-12-24 15:02:29 1535
原创 WPF中使用ListView封装组合控件TreeView+DataGrid-粉丝专栏
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果截图,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)说明: 使用ListView封装的时候,难度最大,或者没有找到最好的方法实现。(也就是本文的演示)这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是ListView的实现。
2023-12-23 21:09:40 620
原创 WPF中使用ListView封装组合控件TreeView+DataGrid
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果截图,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)说明: 使用ListView封装的时候,难度最大,或者没有找到最好的方法实现。(也就是本文的演示)这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是ListView的实现。
2023-12-23 20:31:58 652
原创 WPF中使用DataGrid封装组合控件TreeView+DataGrid-粉丝专栏
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果截图,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第二种:技术的选择是DataGrid(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。第一种:技术的选择是TreeView。本文演示的是DataGrid的实现。
2023-12-22 23:10:37 744
原创 WPF中使用DataGrid封装组合控件TreeView+DataGrid
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果截图,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第二种:技术的选择是DataGrid(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。第一种:技术的选择是TreeView。本文演示的是DataGrid的实现。
2023-12-22 23:06:31 970
原创 WPF中使用TreeView封装组合控件TreeView+DataGrid-粉丝专栏
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果如下,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第一种:技术的选择是TreeView(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是使用TreeView的实现。第二种:技术的选择是DataGrid。
2023-12-21 22:35:47 964
原创 WPF中使用TreeView封装组合控件TreeView+DataGrid
wpf的功能非常强大,很多控件都是原生的,但是要使用TreeView+DataGrid的组合,就需要我们自己去封装实现。功能如上图所示, 目前基本上把常用的样式都实现了,购买源码后,可以自行修改样式。本文源码效果如下,(搞了好几天,的确有难度,所以源码也收费,便宜,赚点辛苦费)第一种:技术的选择是TreeView(也就是本文的演示)。这2个图都是第三方控件自带的,并且都是收费使用。首先说明一下,实现上面的效果,有3种方法。本文演示的是使用TreeView的实现。第二种:技术的选择是DataGrid。
2023-12-21 22:28:40 857
原创 C#深拷贝效率对比
本篇说一下,深拷贝的效率问题,效率一直是程序追求的,效率越高肯定越好,有时候功能是实现了,但是运行以及处理数据的效率非常低,此时就让人很头疼,当你知道了如何提高效率的时候,在你实现功能的时候,就已经考虑进去了,而不是先把功能做好,后期再优化(当然这种模式覆盖大部分人的开发习惯)。总结:总的来说,数据量在100W的时候,差距还是很明显的,建议使用表达式树,在10W数量的时候,表达式树和AutoMapper差距已经不是很大了,数据量再小的话,预计差别就更少了,具体使用,还是看程序的数据在什么量级。
2023-12-17 17:18:58 704
原创 C#浅拷贝和深拷贝数据
可见,修改testData1的D1的值后,test2的D1的值,并没有变化,这正是我们需要的,后续可以对testData1和test2的数据,分别进行业务操作。这里我们首先是先把对象转成字符串,再把字符串转成对象,效果和上面是一样的。这个就是浅拷贝,这种拷贝在程序场景中很少用到,不知道的人,偶尔会很奇怪。前面的数据结构依然不变,深拷贝在程序中运用的场景非常多,我们说4种方法。当修改testData1的D1的值后,test1的D1的值也改变了。共享地址的,修改第一份数据或者修改第二份数据,
2023-12-17 16:31:03 2551
原创 巧妙的使用WPF中的资源
其实,在wpf中,最核心的就是xaml,因为只有xaml,才能体现出用的是wpf,而不是普通的cs文件,cs文件在winform中等等程序都可以使用的,唯独xaml才是wpf中最重要的,最精华的东西,但是xaml说深也深,说浅也浅,很多人都是用winform的做法去开发wpf,从效果上看,没有任何区别的。今天说一下wpf中的资源,其实也属于xaml中的内容,万物皆资源。此时其实就是把UC控件充当了引用界面的方式,效果一毛一样。2.2在App.xaml中把它当做资源。建立MainViewModel。
2023-12-12 23:34:52 943
原创 WPF-附加属性《十二》
顾名思义,就是附加上面的属性,自身是没有的,别人附加上面的,就变成了自己的属性,就可以使用点. 点击 出来。比如说,wpf中PasswordBox控件是不能进行绑定数据的,但是你把它绑定一个密码,那么就是附加属性了。此时,PasswordBox可以绑定PW的值,如果没有附加属性的话,那么原生的PasswordBox是不能直接赋值PW的,也就是没有Binding的功能,附加属性就是增加了Binding的功能。依赖属性和附加属性,两者是有关系的,也是有些区别的,很多时候,可能会把两者混淆了。
2023-12-12 22:05:35 919
原创 Task中Wait()和Result造成死锁
在使用Task的时候,一不留神就会造成死锁,而且难以发现,尤其是业务繁多的情况下,一个Task嵌套另一个Task的时候,下面就演示一下,在什么情况下,会产生Wait()和Result的死锁,因此,我们就要避免这样的写法。
2023-12-03 17:45:12 1526
原创 不为人知的数组遍历
可见运行后,运行这段代码的时间是:1327,当然这个值和计算机的CPU等等都有关系的,大概就在这个区间左右,相差不会很大。可见运行后,运行这段代码的时间是:344,当然这个值和计算机的CPU等等都有关系的,大概就在这个区间左右,相差不会很大。也不知道博主从哪里抄写来的,分享一下,又加了自己的思考和扩展,一个有趣的写法。本次结果依然是4,这里要说明一下,虽然m和n的数值不一样,但是总体循环的乘积是一样的。递增的关系基本上是2倍的关系, 但是第一次和第三次,是5倍的的关系。有一个快速的记忆方法,俗话说,
2023-12-01 23:53:04 394
原创 .net7.0中把exe和dll分开打包
现在的.netcore系列有单独支持把exe和dll分开打包的功能了,当然也支持.net7.0和.net8.0,听说.net8.0很不稳定,所以就没升级,升级后vs2022一大堆问题。此时会看到只有一个独立的exe,其他依赖的dll都打包了起来,不管多少个dll,最终都是这样的文件。3.安装dotnetCampus.PublishFolderCleaner。可见把exe和dll进行了分离,看起来非常的清爽。还可以使用发布自带的功能,选择独立和生成单个文件。这都是老技术了,可以进行参考。
2023-11-28 23:20:23 974
原创 WPF创建进度条
关键点就是要对max的值进行判断,如果大于100和小于100的话,显示是不一样的,主要是因为进度条的值是100,要相对的扩大或者缩小,那么界面上显示的数据变化就是一样的。功能就是点击按钮,后台处理数据,前台显示处理数据的变化,当然还可以对进度条进行美化和关闭的操作,等待后台处理完毕数据,然后自动关闭。5.ProgressBarStyle.xaml,最后就是对进度条的美化样式。使用wpf做一个原生的进度条,进度条上面有值,先看效果。4.MainWindow.xaml.cs的代码。其中最重要的就是Task。
2023-11-28 22:48:20 1021
原创 使用WinDbg分析软件突然崩溃的问题
t,也能看到异常,但是异常是BadImageFormatException,明显是不对的,但是点击进去的话,也可以看到是MessageBoxShow方法报错的。因此,我们写一个wpf程序,调用c++的dll,然后点击按钮,直接崩溃,生成dmp,然后分析dmp文件。出现这种错误类型的提示,因为生成的c++的dll,我采用了不同的方式生成的,所以同样的代码,报错的类型不一样,但是最终指定报错的地方是一样的。t,就已经能看到异常了,当然是因为程序比较简单,而且我也专门写的这个错误,空引用异常了,非常的准确。
2023-11-10 23:54:32 818
原创 使用WinDbg分析CPU100%的问题
在我们软件运行的时候,偶尔会出现CPU占比100%的问题,而且极其不容易排查,概率极低,我硬是操作了一个下午,出现了一次,然后找到了dmp文件,也没有任何的规律,那么就可以借助windbg进行分析。15.因为这个问题,我知道是怎么发生的,所以看到这里就明白了,此处是非安全线程造成的,所以解决的办法,就是加锁,或者换成安全线程集合即可,最后完美解决,经过几天的测试,再也没有出现CPU100%的问题了。这个命令执行后,有大量的信息,需要一个一个的看,会看到下面的报错。14.最后用反编译工具,直接就定位这里了。
2023-11-10 22:30:02 383
原创 WPF中DataContext的绑定技巧
先看效果:上面的绑定值都是我们自定义的属性,有了以上的提示,那么我们可以轻松绑定字段,再也不用担心错误了。附带源码。
2023-10-08 23:35:03 1365
原创 基于.net6的WPF程序使用SignalR进行通信
今天写一篇关于CS客户端的SignalR通信,后台服务使用.net6api。其实和之前写的差不多,主要在于服务端以后台进程的方式存在,而客户端以exe方式存在,其实代码都一样,只是生成的方式不一样。此时,后台的服务以进行的方式存在,然后可以和客户端进行通信,其实和之前写的是一样的,只是生成方式不同而已。之前写的SignalR通信,是基于.net6api,BS和CS进行通信的。当然IP和端口都可以修改的,也可以增加网页显示,根据业务而定。运行后,服务是以进程的方式存在。选择Windows应用程序。
2023-07-18 23:32:41 2324
原创 .net6中WPF的串口通信和USB通信
目前只是查询出来4个USB设备,但是对USB进行发送和接收信息,还有报错。这个似乎需要和硬件通信协议和数据传输规范有关系,否则好像成功不了,也不清楚可不可以使用虚拟的USB,类似于COM虚拟口一样操作,暂时这么记录吧。今天说一下,.net6中wpf的串口通信和USB通信,在工控行业中,这2种的方式非常多,还有网口通信,它们都是用来和硬件打交道的,进行交互信息。之前写过串口通信,不过是winform的。2.基本上代码都是一样的,xaml界面。一个写1端口,一个写2端口,进行通信。2.操作USB有2种方式。
2023-07-16 22:15:01 2344 2
原创 c#使用ThreadPool
说到ThreadPool,都知道是线程池。从时间上来排序,大概是这样的,Thread,backgroundworker,ThreadPool,Parallel,Task。其中后面2种是最新的,之前的很少使用,如果是老项目,基本上前面用的多,而新项目,最好使用后面的2种,因为后面的效率以及各方面控制更加的容易上手,需要开发者考虑的问题,也更加的少,使用起来简单方便。1.其中WaitCallback是一个带有参数的方法,所以上面案例,需要传递一个object对象,可见,属于多次一举,但是规定就是这样的。
2023-07-16 17:41:20 875
原创 记录C#知识点(二)21-40
类中继承Freezable,可以让类进行冻结,从而提高性能,冻结后,不可以修改类的属性值,只能读取。Lazy是一种延迟加载技术,就是比较懒,只有在需要的时候,才会去执行第一次,但是只要执行第一次以后,就不需要再次执行了,提高了性能。此问题是Windows7缺少了系统更新的文件,使用腾讯电脑管家,进行更新即可,或者其他系统更新软件。比如,isCheck=‘1’,明明选择了4条,但是在使用Select的时候,只有3条数据。当使用Select选择字段的值的时候,如果数据没有更新,会出现少一条数据的情况。
2023-07-16 15:56:23 966
C#.net8创建webapi,使用SqlSugar,仓储模式,DTO,服务层,控制层的综合应用
2024-03-26
wpf使用Popup封装数据筛选框,wpf使用Popup封装数据筛选框
2024-03-21
TreeView.TreeDataGrid,TreeView.TreeDataGrid
2024-03-21
DataGrid.TreeDataGrid,DataGrid.TreeDataGrid
2024-03-21
ListView.TreeDataGrid,ListView.TreeDataGrid
2024-03-21
uniapp开发小程序实现-获取微信账号(三)
2024-03-10
uniapp开发小程序实现-获取/修改头像昵称(一)
2024-03-10
uniapp开发小程序实现-获取手机号码(二)
2024-03-10
DevExpressLocalizedResources-2022.1-zh-CN.exe
2022-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人