小编JDe*_*ker的帖子

MVVM:ViewModel和业务逻辑连接

在使用MVVM模式执行一些项目之后,我仍然在努力使用ViewModel的角色:

我过去做了什么:仅将模型用作数据容器.使逻辑操纵ViewModel中的数据.(这就是业务逻辑吗?)Con:逻辑不可重复使用.

我现在正在尝试:保持ViewModel尽可能薄.将所有逻辑移动到模型层.仅在ViewModel中保留演示逻辑.Con:如果在模型层内更改了数据,则会使UI通知真的很痛苦.

所以我会给你一个例子,让它更清晰:

场景:重命名文件的工具.类:文件:代表每个文件; 规则:包含逻辑如何重命名文件;

如果我遵循方法1:为文件,规则和视图创建ViewModel - > RenamerViewModel.将所有Logic放在RenamerViewModel中:包含FileViewModel和RuleViewModel的列表以及正在进行的逻辑.简单快速,但不可重复使用.

如果我遵循方法2:创建一个新的模型类 - >重命名,其中包含文件列表,规则和进行逻辑以对每个文件进行交互并应用每个规则.为文件,规则和重命名器创建视图模型.现在RenamerViewModel只包含一个Renamer Model的实例,加上两个ObservableCollections来包装Renamer的File和Rule List.但整个逻辑都在Renamer模型中.因此,如果触发重命名模型以通过方法调用操作某些数据,则ViewModel不知道哪些数据被操纵.因为模型不包含任何PropertyChange通知,我会避免这种情况.因此,业务和表示逻辑是分开的,但这使得很难通知用户界面.

c# wpf design-patterns mvvm

42
推荐指数
3
解决办法
3万
查看次数

获取 Office 插件发布版本

我有一个 Outlook 插件,我需要获取发布版本。我指的不是程序集版本、文件版本或 Office 版本。(这是我发现的全部)。

一些 C# 代码会非常好!

在此输入图像描述

黑色 XML 来自项目文件。

c# add-in version outlook-addin

4
推荐指数
1
解决办法
3444
查看次数

标签 统计

c# ×2

add-in ×1

design-patterns ×1

mvvm ×1

outlook-addin ×1

version ×1

wpf ×1