Replies: 7 comments 9 replies
-
MVVM 是一个很庞大的话题,可以说是一种全新的界面设计理念,不太好几句话讲清楚,我之后有打算专门出几期视频聊一聊我对 MVVM 的理解。目前简单说一下的话,MVVM 的主要目的是为了前后端的解耦,这样的好处是后端(ViewModel)可以写单元测试,界面逻辑放在后端,使得前端换框架更为方便,以及配套使用依赖注入(DI)等等。 具体举个简单的例子,比如有用户名和密码两个文本框以及一个注册按钮,界面逻辑包括:
如果用传统的 MVC,那么你一定会需要去注册 |
Beta Was this translation helpful? Give feedback.
-
通俗来讲就是将View的东西绑定到ViewModel,这样就不用去调用View本身的属性 // DataGrid.ItemsSource = items;
foreach (var item in items)
Dispatcher.InvokeAsync(() => DataGrid.Items.Add(item), DispatcherPriority.Background); 在MVVM中并没有对这种加载提供便利,绑定的数据依旧得一个一个填入 |
Beta Was this translation helpful? Give feedback.
-
像是后台添加控件 比如说读取目录中的图片并显示 |
Beta Was this translation helpful? Give feedback.
-
感觉会把很多东西复杂化 |
Beta Was this translation helpful? Give feedback.
-
richtextbox怎么做到用mvvm实现绑定? |
Beta Was this translation helpful? Give feedback.
-
MVVM最大的好处就是对View和ViewModel进行解耦, 这个过程要做出一些牺牲以及学习跟多的知识来应对"牺牲".要知道mvvm不是只为了给wpf用的,当你严格的执行了mvvm的标准后,那么你只要你把ViewModel的代码独立出去,然后你可以直接对接上新的ui框架(这里可以是网页比如.net的blazor, 多平台的Maui,Avalonia,Xamarin等等)而你只需要重写ui不太需要关心业务逻辑了,还有就是解耦后VM写测试就很方便了. |
Beta Was this translation helpful? Give feedback.
-
单看你这个原始问题描述,不是想问MVVM框架本身吧 |
Beta Was this translation helpful? Give feedback.
-
到头来就在项目中加了几个
[ObservableProperty]
少写几行代码咯Beta Was this translation helpful? Give feedback.
All reactions