一款WPF的小巧MVVM框架——stylet框架初体验
内容提要
这篇文章介绍了一个叫做stylet的MVVM框架,以及如何使用它创建一个简单的demo。文章详细介绍了如何引用stylet框架、创建View和ViewModel、实现MVVM双向绑定、使用IOC容器实现依赖注入等。最后,作者提供了demo源码的获取方式。
延伸解读
View与ViewModel的强制对应关系
Stylet要求View和ViewModel必须一一对应,例如页面A必须命名为AView和AViewModel,否则框架无法识别。这种约定优于配置的方式减少了手动绑定的繁琐,但也意味着开发者需要严格遵守命名规范。对于习惯其他MVVM框架的开发者,可能需要适应这种强制性规则,但它能有效避免因命名混乱导致的绑定错误。
命令绑定的独特实现方式
Stylet的命令绑定不是直接使用Binding,而是通过Action来绑定。这种设计使得命令触发更加直接,代码更简洁。在ViewModel中,命令方法可以直接与前端控件关联,点击按钮后自动执行指定方法并更新界面。这种简单粗暴的方式降低了命令绑定的学习成本,尤其适合快速开发小型项目。
内置IOC容器的能力与限制
Stylet自带IOC容器,支持通过builder.Bind<接口>().To<实现>().生命周期模式进行服务注册,写法直观。但文章指出,其可选生命周期比较有限,不如Prism、Castle或ASP.NET Core自带的容器丰富。因此,对于依赖注入需求复杂的大型项目,可能需要评估是否够用,或考虑集成更强大的容器。
Q&A
stylet框架的主要特点是什么?
stylet框架是一个小巧的MVVM框架,具有简单的命令触发方式和强制性一一对应的View和ViewModel关系。
如何在WPF项目中引用stylet框架?
在WPF项目中,可以使用.NET 8创建项目并引用stylet的nuget包。
如何实现MVVM双向绑定?
MVVM双向绑定可以通过创建控件并使用Action绑定Command命令来实现,具体代码与传统MVVM有所不同。
什么是Bootstrapper类,它的作用是什么?
Bootstrapper类用于服务注册和IOC容器配置,必须继承自Bootstrapper并重写相关方法。
stylet框架的IOC容器有什么特点?
stylet框架的IOC容器生命周期选项有限,但服务注册的写法直观,使用builder.Bind<接口>().To<实现>()的方式。
如何获取stylet框架的demo源码?
可以在个人公众号【Dotnet Dancer】后台回复【stylet】获取demo源码。