草庐IT

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件

在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。1、下拉列表的数据绑定在我们创建下拉列表的时候,我们一般处理方式,是在对应的数据模型中添加对应的下拉列表的集合对象,然后在控件绑定对应的ItemSource,如下所示是视图模型,我们增加一个性别的列表参考。//////用户列表-视图模型对象///publicpartialclassUserListViewModel:BaseListViewModelint,UserP

软件设计模式之MVC、MVP、MVVM、HMVC、MVA、MVI和VIPER

软件架构设计是将软件一些共有的特征转换为满足业务需求和技术要求的结构化方案的过程。软件架构设计的目的是为了实现系统的长期可维护性、可扩展性、可靠性和安全性,以满足业务需求和未来可能的变化。在过去的几年里,软件架构的设计模式层出不穷,每一个模式的出现,都是试图想使代码更可读、更容易于测试、更易于维护以及让开发人员更轻松。但同时,每个模式的出现也都有适应的场景和优劣。本文主要将MVC、MVP、MVVM、HMVC、MVA、MVI和VIPER等,几个常见的设计模式做一个汇总的介绍。1.MVCMVC是一种体系架构,经典MVC模式中,M是指模型,V是视图,C则是控制器,使用MVC的目的是将M和V的实现代码

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(10) -- 在DataGrid上直接编辑保存数据

有时候,一些数据的录入可能需要使用表格直接录入会显得更加方便快捷,这种情况有时候也是由于客户使用习惯而提出,本篇随笔介绍在WPF应用端上使用DataGrid来直接新增、编辑、保存数据的处理。录入数据的时候,我们都采用在一个窗体界面中,根据不同内容进行录入,但是有时候涉及主从表的数据录入,从表的数据有时候为了录入方便,也会通过表格控件直接录入。在Winform开发的时候,我们很多时候可以利用表格GridControl控件来直接录入数据;在BS的Vue&Elment前端项目中,也可以利用第三方组件vxe-table直接录入表格数据。在不同的前端处理中,对于数据直接录入的处理,我写了一些随笔,可以参

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(9) -- 实现系统动态菜单的配置和权限分配

在WPF应用端开发,它的界面类似于Winform端,因此我们也需要对系统的菜单进行动态配置,这样才能把系统的功能弹性发挥到极致,通过动态菜单的配置方式,我们可以很容易的为系统新增所需的功能,通过权限分配的方式,可以更有效的管理系统的菜单分配到不同的角色用户,本篇随笔介绍在WPF应用端中实现系统动态菜单的配置和权限分配。1、系统菜单的管理为了能够动态的加载应用系统的菜单,我们需要在数据库中存储对应的菜单信息,配置好后进行权限分配即可。菜单的管理界面如下所示,左侧是一个菜单的树形列表,用来指引选择或者查询特定的菜单,右侧列表列出菜单的相关信息,以及提供新增、编辑、导入、导出、删除等操作入口。由于菜

WPF MVVM中的INT结合

我正在开发具有MVVM模式的WPF应用程序。我在ViewModel类中声明INT属性。当我更改此属性时,更改未显示在UI中。其他数据类型在我的应用程序中效果很好。但是,如果将类型更改为对象,则有效。publicclassTestUserControlViewModel:UserControlViewModel{publicTestUserControlViewModel(TestUserControlViewtestUserControlView){UserControlView=testUserControlView;Inital();}publicRelayCommandAddPriceR

WPF MVVM更新文本编辑器当TreeViewItem选择更改时

我有一个类似定义的目录的树视图:publicclassDirectoryItem:INotifyPropertyChanged{publicStringDisplayName{get;set;}publicStringFullpath{get;set;}publicObservableCollectionChildren{get;set;}publiceventPropertyChangedEventHandlerPropertyChanged;}当用户从TreeView中选择DirectoryItem时,我想从该项目中获取FullPath,从文件中读取所有文本,然后将其加载到文本编辑器中。我

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(8) -- 使用Converter类实现内容的转义处理

在我们WPF应用端的时候,和WInform开发或者Vue前端开发一样,有时候也需要对内容进行转义处理,如把一些0,1数值转换为具体含义的文本信息,或者把一些布尔变量转换为是否等,都是常见的转换处理,本篇随笔介绍在WPF应用端对内容使用Converter类实现内容的转义处理的操作。1、使用Converter实现内容转义或者强调颜色一般在DataGrid中,我们往往都会根据需要对内容或者颜色进行一些转义处理,如下界面所示用户列表信息中,对性别和是否过期的内容进行颜色和内容的转义处理。在DataGrid的XAML代码中,如果是常规的内容,通过定义列名称即可显示,如下所示。DataGridTextCo

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(7) -- 图标列表展示和选择处理

我们在WPF应用端的界面中,使用lepoco/wpfui来做主要的入口框架,这个项目它的菜单内置了不少图标,我们需要在动态菜单的配置中,使用它作为图标的展示处理,本篇随笔介绍如何基于图标枚举集合进行图标的展示和选择处理。并扩展到Font-Awesome-WPF的处理进行展示和选择。1、lepoco/wpfui项目的图标库lepoco/wpfui项目的图标库来源于FluentSystemIcons,项目地址是:https://github.com/microsoft/fluentui-system-icons这些图标映射到枚举对象 SymbolRegular和SymbolFilled,一个是常规

sqlite mvvm中的datepicker

我在c#中有一个带有sqlite的UWP应用程序。我遇到的问题是datePicker,当DateTimeOffSetTimeConverter给我一个例外时,如果我删除日期01/01/1001(将其删除正确的日期),则日期点的日期在另一个页面中,称为mypetpage。c#privateasyncvoidaddbutton_click(对象发送者,routedeventargse){varselectedDate=Data1.Date.ToString();DataBaseHelperDb_Pet=newDataBaseHelper();if(txtnombre.Text!=""&txtchi

MVVM/WPF:解开和重新固定财产

注意:我不确定该怎么称呼这个问题,但这与解除/重新固定属性有关。我有一个用编码器控制电动机的arduino。我想创建一个接口以在读取其位置(使用编码器)时控制它。视图:我有一个文本框来显示电动机位置的数字读数(DRO)。它的文本属性与ViewModel的公共财产约束。我希望能够向Arduino发送理想的位置,同时也看到DRO。换句话说,文本框应该不断输出电动机的位置,但是一旦我开始输入一个值,就会将该值发送到Arduino(带有某种格式,因此Arduino知道该如何处理)。目前正在发生的事情是,我有一个接收到的事件处理程序的序列数据,并将电动机位置设置为绑定的属性,然后将其显示在文本框中。我需