登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
WPF优秀项目推荐:Stylet 一个非常轻量但强大的 ViewMod ...
WPF优秀项目推荐:Stylet 一个非常轻量但强大的 ViewModel-First MVVM 框架
[ 复制链接 ]
巨耗
2025-8-12 11:33:22
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
Stylet介绍
Stylet 是一个小型但功能强大的 ViewModel 优先的 MVVM 框架,适用于 WPF (.NET 4.5.2+ 和 .NET Core 3.0+),它允许您编写易于测试的可维护和可扩展的代码。
Stylet 的目标是:
解决没有框架时阻碍 MVVM 开发的障碍、烦恼和不便,使用简单但强大的概念。
对于第一次接触您项目的人员来说是显而易见的:几乎没有什么魔法。
易于验证/验证。代码行数较少,并附有非常全面的测试套件。代码编写良好且文档齐全。
提供灵活性同时提供合理的默认值。框架的几乎任何部分都可以根据需要重写,但您可能不需要这样做。
它受到 Caliburn.Micro 的启发,分享了其许多概念,但去除了大多数魔法(用更强大的替代方案替换),并通过仅针对 MVVM、WPF 和 .NET 4.5.2 大幅简化了部分功能。
GitHub地址:https://github.com/canton7/Stylet
如何快速入门
第一,有一个Samples,克隆代码之后,可以先打开这个示例项目。
通过运行这几个项目,可以快速了解Stylet提供了什么功能。
第二,查看官方文档。
Style的官方文档地址:https://github.com/canton7/Stylet/wiki
作者通过这几个方面进行了说明:
现在就一起简单地看看Stylet的一些概念与设计!!
首先最重要的就是
ViewModel优先!!
经典的MVVM结构中,视图知道如何实例化其ViewModel,而ViewModel通常不会直接通信,这种模式被称为视图优先。然而,反转这种模式——自己实例化ViewModel,然后让视图自动附加——提供了许多优势,使你可以以一种非常熟悉的方式组合你的ViewModel。这种ViewModel优先的方法是Stylet唯一支持的方法。
在Stylet中可以通过ViewModel自动绑定到对应的View,这样的话,就可以这样写:
在xaml文件中可以通过ViewModel找到对应的视图,非常方便!!
第二点就是
Action!!
WPF 中使用的 ICommand 接口功能强大,但在 MVVM 架构中使用时显得笨拙。让 ViewModel 中响应按钮点击等操作的方法表示为属性而不是方法似乎不合逻辑。一个简单的 将导致每次点击按钮时调用 ViewModel 中的 DoSomething()。此外,如果你有一个名为 CanDoSomething 的布尔属性,它会被观察并用于确定按钮是否应启用或禁用。
Action还可以与事件一起使用,例如
。
在WPF中如果想要实现原生的命令还是挺麻烦的,虽然现在也有很多库可以简化了,但是看到Stylet这样的写法还是会被惊艳到,真的很方便!!
比如你在ViewModel中写了一个这样的方法:
public void NavigateToPage1() => this.navigationController.NavigateToPage1();
复制代码
在xaml中,你只要这样写就可以绑定上:
第三点就是
属性通知的简化写法
Stylet自己封装了一个SetAndNotify,简洁了一点。
第四点就是
实现了一个简单的IOC容器
,在程序开始时会扫描程序集,把ViewModel都自动瞬态注入进去,因此你可以在Bootstrtapper中不需要自己显示注册,这样也方便了很多,体现了约定大于配置的思想吧。
当然也可以自己显示注册,比如这样的写法:
protected override void ConfigureIoC(IStyletIoCBuilder builder)
{
builder.Bind<NavigationController>().And<INavigationController>().To<NavigationController>().InSingletonScope();
}
复制代码
第5点就是
实现了一个基类Screen
Screen 实现了
IActivate、IDeactivate、IGuardClose
等接口,允许你在视图模型激活、关闭时执行逻辑。
方法/属性作用说明OnActivate()当 ViewModel 被导航到或激活时调用OnDeactivate(bool close)当 ViewModel 被关闭或导航销毁时调用TryClose(bool? dialogResult = null)请求关闭当前 Screen第六点是
提供了一个WindowManager
Stylet已经自动注册了,可以直接通过构造函数注入。
使用也很简单,有ShowDialog,这个会阻塞,适合需要用户确认才执行的情况;有ShowWindow,这个不会阻塞会直接显示一个窗体。
需要注意的是ViewModel对应的View需要继承自Window。
第7点是
自带了一个The EventAggregator
也是跟WindowManager开箱即用,非常方便。
最后
虽然这个框架已经有一年多没有更新了,但是说实话这个框架用来构建中小型项目还是很方便的,感谢开源者的付出,感兴趣的朋友也可以探索一下这个框架。这个框架确实配的上它的简介:Stylet 一个非常轻量但强大的 ViewModel-First MVVM 框架。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
WPF
优秀
项目推荐
Stylet
一个
相关帖子
TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
Gemini3在线构建一个基于女性照片解析的应用
使用.NET开发并上线一个小智AI对话机器人的MCP服务转接平台
用一个简单模型推导卡尔曼滤波理论
一个表示金额的数字是 100000000L,这是多少米
一款开源、多语言的 WPF 可筛选 DataGrid 控件
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
在测试领域,如何写一个更好的prompt来进行测试提效
带vip功能的一个网盘系统
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
TypedSql:在 C# 类型系统上实现一个 SQL 查询引擎
1
968
戈森莉
2025-11-24
科技
Gemini3在线构建一个基于女性照片解析的应用
0
470
堠秉
2025-11-24
业界
使用.NET开发并上线一个小智AI对话机器人的MCP服务转接平台
0
998
东门清心
2025-11-26
业界
用一个简单模型推导卡尔曼滤波理论
2
759
怀陶宁
2025-11-26
安全
一个表示金额的数字是 100000000L,这是多少米
0
857
欤夤
2025-11-29
业界
一款开源、多语言的 WPF 可筛选 DataGrid 控件
1
297
俏襟选
2025-11-29
业界
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
1
599
司寇涵涵
2025-11-30
业界
拆解一个真实电商项目:微服务架构中的服务治理与性能优化
1
912
蟠鲤
2025-11-30
安全
在测试领域,如何写一个更好的prompt来进行测试提效
0
142
刃减胸
2025-12-02
程序
带vip功能的一个网盘系统
1
16
新程序
2025-12-06
回复
(4)
羊舌正清
2025-10-27 05:49:30
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
过来提前占个楼
猷浮
2025-11-12 08:10:21
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
松菊
2025-11-25 03:18:16
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
不错,里面软件多更新就更好了
嶝扁
2 小时前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
热心回复!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
巨耗
2 小时前
关注
0
粉丝关注
16
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845355
3934307807
991122
4
xiangqian
638210
5
宋子
9987
6
闰咄阅
9991
7
刎唇
9993
8
俞瑛瑶
9998
9
蓬森莉
9952
10
匝抽
9986
查看更多