草庐IT

深入理解WPF中MVVM的设计思想

近些年来,随着WPF在生产,制造,工业控制等领域应用越来越广发,很多企业对WPF开发的需求也逐渐增多,使得很多人看到潜在机会,不断从Web,WinForm开发转向了WPF开发,但是WPF开发也有很多新的概念及设计思想,如:数据驱动,数据绑定,依赖属性,命令,控件模板,数据模板,MVVM等,与传统WinForm,ASP.NETWebForm开发,有很大的差异,今天就以一个简单的小例子,简述WPF开发中MVVM设计思想及应用。 为什么要用MVVM? 传统的WinForm开发,一般采用事件驱动,即用户点击事件,触发对应的事件,并在事件中通过唯一标识符获取页面上用户输入的数据,然后进行业务逻辑处理。这

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(4) -- 实现DataGrid数据的导入和导出操作

在我们设计软件的很多地方,都看到需要对表格数据进行导入和导出的操作,主要是方便客户进行快速的数据处理和分享的功能,本篇随笔介绍基于WPF实现DataGrid数据的导入和导出操作。1、系统界面设计在我们实现数据的导入导出功能之前,我们在主界面需要提供给客户相关的操作按钮,如下界面所示,在列表的顶端提供导入Excel、导出PDF、导出Excel。由于这些操作功能基本上在各个页面模块,可能都会用到,因此尽可能的抽象到基类,以及提供通用的处理操作,实在有差异的,也可以通过一些属性或者事件方法的覆盖方式来实现即可。因此我们在Xaml里面定义按钮的时候,基本上是调用视图模型的方法来通用化的处理,如下代码所

ios - 使用 XCTest 测试 RACSignals

我在当前的iOS应用程序中使用MVVM范例。最近,我也开始在项目中使用ReactiveCocoa。我现在也开始尝试使用单元测试。我面临的问题是如何正确测试我创建的自定义RACSignal。这是我正在测试的测试信号的示例。此信号与UItextField一起使用,将阻止将不需要的字符输入到textField中。在这种情况下,我只允许数字://Declaredlikeso:-(RACSignal*)onlyAllowNumbersforTextFieldSignal:(RACSignal*)signal//usedlikethis:RAC(testTextField,text)=[self.

mvvm - 在 MVVM (TCP) 中实现数据访问层

大多数MVVM和数据访问层文章都解释了WCF和DTO的东西,但我的项目从不使用它们,而是与服务器进行简单的TCP/IP通信。我有模型直接使用Tcp/ip套接字。但是,我一直觉得tcp/ip套接字逻辑应该与模型分离。如果是这样,我想知道如何解耦和实现它们。 最佳答案 我一直认为模型是从数据库、服务、文件...任何存储库(包括套接字)交付给我的“东西”。我会将套接字包装在某种存储库中,以一种可以转换为ViewModel的良好格式获取数据。也就是说,如果速度是您使用套接字的原因,那么整个存储库/模型/View模型可能被证明太慢了。一如既往

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件

在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,主要针对自定义用户控件的封装和使用做一些介绍。1、自定义用户控件的应用场景在我们使用原生的WPF控件的时候,有时候发现常规的原生控件不够好看,或者功能达不到要求,就需要进行一定程度上的二次封装处理,也就是自定义控件的开发场景。例如我们前面介绍到的用户信息的查询

WPF使用Microsoft.Toolkit.Mvvm框架记录

前言为了解决WPFUI与程序逻辑之间得到解耦,所以使用Microsoft.Toolkit.Mvvm框架来实现,说真的开发逻辑真的有些不适应,不过理解就好。框架大体支持ICommand、IMessenger等。什么是MVVM?MVVM是Model-View-ViewModel的简写。它本质上就是MVC(Model-View-Controller)的改进版。即模型-视图-视图模型。分别定义如下:【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面

循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)

在前面随笔《循序渐进介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发(1)》中介绍了Mvvm的开发,以及一些界面效果,本篇随笔继续深入探讨基于CommunityToolkit.Mvvm和HandyControl的WPF应用端开发,介绍如何整合SqlSugar框架的基础接口,通过基类继承的方式,简化实际项目的开发代码处理。1、View模块中的XAML格式说明在介绍MVVM几个部分内容之前,我们先连接一下View模块中的Xaml格式的说明,我们知道Xaml也是一个xml的扩展,属于标记语言的一种,编辑器为了更好的验证格式以及提出上下文的智能提示,必然需

ios - RxSwift - 可观察的自定义类

我正在创建一个自定义的通用TableView模型来使用MVVM和RxSwift。我知道RxTableViewSectionedReloadDataSource类,但现在不愿意在我的项目中使用它。模型已创建并运行typealiasTableViewModel=TableModelclassTableModel{varsections=[SectionModel]()funcadd(item:SectionModel){sections.append(item)}//Morefuncsthere...}我在我的ViewModel中创建了一个实例:vartableViewModel=Vari

swift - Swift 和 MVVM 架构的 Xcode 项目文件文件夹结构

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭去年。Improvethisquestion我今天要使用Swift和MVVM架构从头开始一个新项目。我想根据最佳实践设置文件和文件夹结构,以实现简单易懂的导航和使用。大多数教程建议:├─Models├─Views├─ViewModels├─Stores├─Helpers但我发现它非常缺乏,因为我真的不知道什么是管理ViewModels文件夹的最佳实践。现实世界super可维护项目有什么好的建议吗?非常感谢!:)

ios - Storyboard - 对象内部的对象作为 IBOutlet

我正在浏览thisMVVM模式的好教程,以简单的api调用为例。下面是Storyboard中UIViewController的最终结构:风投:importUIKitclassViewController:UIViewController{@IBOutletweakvarviewModel:ViewModel!overridefuncviewDidLoad(){super.viewDidLoad()}}虚拟机:importUIKitclassViewModel:NSObject{@IBOutletweakvarclient:ApiClient!}API客户端:importUIKitcla