Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >主细节划分为两个视图模型:在哪里放置取消命令逻辑?

主细节划分为两个视图模型:在哪里放置取消命令逻辑?
EN

Stack Overflow用户
提问于 2010-07-13 13:53:38
回答 3查看 576关注 0票数 2

窗口的主部分包含一个DataGrid。详细信息部分显示一个表单,允许编辑主DataGrid中当前选定的记录。网格的SelectedItem绑定到主vm。当该属性发生更改时,主vm将创建一个新的EditViewModel,并通过属性公开它。视图的details部分使用此属性作为其DataContext。

在实现诸如cancel之类的命令时,您会将它们放入主视图或详细信息视图模型中吗?

细节视图模型负责用户与记录的交互。可以说,这一责任包括删除。另一方面,可以说主视图负责用户与集合的交互,而且由于删除正在修改集合,因此应该将delete功能放在其中。

谢谢,

编辑:澄清--通过“实现命令”,我指的是实现要求服务层执行所请求的操作的代码。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-13 14:19:34

我认为你的第二个论点比你的第一个论点强得多。

只是个人的意见,但在我看来,删除似乎是一个关注的收集,而不是个人记录。

票数 5
EN

Stack Overflow用户

发布于 2010-07-13 18:33:26

我同意Ian的回答,但我个人认为UI逻辑和模型逻辑之间的区别很重要。

因此,如果此时删除主要来自UI列表,那么将删除放在集合VM中就很有意义了。

一旦您开始讨论如何使用该模型(例如,从数据库中删除记录),那么这些记录可能是这个逻辑的正确位置。

此外,我还要说,这种影响模型的逻辑应该移到域模型和视图模型之外,让VM尽可能多地负责UI逻辑,而域模型则发展为业务逻辑的丰富表达式。

票数 2
EN

Stack Overflow用户

发布于 2010-07-14 04:48:06

每一张唱片都只知道自己。它甚至不应该意识到它是一个集合的一部分,它本身就是一个实体。主VM有一个记录集合,因此它应该负责修改。

我也同意David关于将UI逻辑和业务逻辑分离开来的观点,不要使用意大利面代码,因为如果您的业务模型发生了更改,它将破坏您的视图模型代码,而且它将遵循枯燥的原则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3241858

复制
相关文章
取消 echart 环形图鼠标放置放大的效果 hoverAnimation: false
https://echarts.apache.org/zh/option.html#series-pie.hoverAnimation
拿我格子衫来
2022/01/24
2.3K0
取消 echart 环形图鼠标放置放大的效果 hoverAnimation: false
[android] 手机卫士欢迎细节和主界面
<item name="android:windowNoTitle">true</item>
唯一Chat
2019/09/10
5090
【DB笔试面试516】Oracle中的视图分为哪几类?
(5)内联视图(Inline View),也叫内嵌视图、临时视图、行内视图、或内建视图,它是出现在FROM子句中的子查询,内联视图不属于数据库对象。
AiDBA宝典
2019/09/29
1.1K0
SAP RETAIL 商品主数据POS视图
SAP RETAIL 商品主数据POS视图 SAP RETAIL系统上商品主数据有一个view叫做POS的,如下图示: 这个视图有啥用? 笔者检查了该视图里的字段,认为对业务起控制作用的字段主要有如下
SAP虾客
2021/11/05
4960
Postgresql源码(114)视图权限授予逻辑
被授权的对象在系统表中记录授权信息,例如pg_namespace中的nspacl列:
mingjie
2023/10/13
6850
Postgresql源码(114)视图权限授予逻辑
创建局部模型视图
当模型中的表数量过多,导致关联变得复杂,不利于用户分析和理解表关系,而旧版Power BI中只提供这一种模型全局视图。
公众号PowerBI大师
2019/09/30
1K0
创建局部模型视图
【QT】QT模型/视图
MVC(Model-View-Controller)包括了3个组件:模型(model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;控制(Controller)定义了用户界面对用户输入的反应方式。
半生瓜的blog
2023/05/13
3K0
【QT】QT模型/视图
晶振为什么不能放置在PCB边缘?
某行车记录仪,测试的时候要加一个外接适配器,在机器上电运行测试时发现超标,具体频点是84MHz、144MHz、168MHz,需要分析其辐射超标产生的原因,并给出相应的对策,辐射测试数据如下:
AI 电堂
2022/12/08
3730
晶振为什么不能放置在PCB边缘?
逻辑回归模型_RF模型
背景: 在“批量导入数据到Redis” 中已经介绍了将得到的itema item1:score1,item2:score2…批量导入到Redis数据库中。本文的工作是运用机器学习LR技术,抽取相应的特征,进行点击率的估计。
全栈程序员站长
2022/11/04
7580
逻辑回归模型_RF模型
[机器学习算法]逻辑回归模型
线性回归模型可以用于回归模型的学习,当我们需要用线性模型实现分类问题比如二分类问题时,需要用一个单调可微函数将线性回归的连续结果映射到分类回归真实标记的离散值上。
TOMOCAT
2020/06/09
5670
[机器学习算法]逻辑回归模型
linux系统下使用unalias命令取消命令别名
unalias命令用来取消命令别名,是为shell内建命令。如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。如果使用-a选项,则表示取消所有已经存在的命令别名。
用户1685462
2021/09/07
2K0
除了在Simulink窗口下新建模型,还有哪里可以实现?
4、点击[Create a Simulink model using the factory default settings.]
裴来凡
2022/05/28
1.7K0
除了在Simulink窗口下新建模型,还有哪里可以实现?
魔鬼在细节里
** 所有命名不能以下划线或者美元符号开始或者结束,不能有拼音和中文的方式,命名语义要清晰完整 **
OPice
2019/11/27
9210
魔鬼在细节里
Unity - 在鼠标点击的位置放置对象
你可以使用函数实例化多个给定的游戏对象或预制对象。 Instantiate (Object Target, object’s position, object’s rotation)或者Instantiate (Object Target)。
hrscy
2018/08/30
5.3K0
Unity - 在鼠标点击的位置放置对象
使用Pygame在Python游戏中放置平台【Gaming】
这是正在进行的关于使用Pygame模块在Python 3创建视频游戏的系列文章的第6部分。以前的文章有:
五月Rambo
2019/11/18
2.6K0
使用Pygame在Python游戏中放置平台【Gaming】
企业网站建设服务器放哪里 服务器放置需要的环境
服务器是用来进行公司网站各种传输操作的工具和容器,企业在建立网站的时候都需要购买一个服务器,来使网站可以正常运营。服务器有塔式的服务器,也有一些其它的类型。一般的网站会选择租用服务器,有经济能力的网站会使用独立的服务器。那么租用了合适的服务器之后,企业网站建设服务器放哪里呢?
用户8715145
2021/12/01
5.8K0
点击加载更多

相似问题

使用视图模型和层分离实现主细节视图

11

主细节列表视图

11

缓存逻辑在哪里,视图模型还是模型

11

两个不相关模型的Telerik mMVC主细节网格视图

13

处理主细节记录的最佳逻辑

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文