小编Tim*_*im 的帖子

MVVM或不是MVVM的问题

我正在重写基于Windows窗体的应用程序,我将使用WPF.该应用程序在非常图形化的环境中严重依赖拖放技术.通过将元素拖动到网格上,移动它们,右键单击设置属性等来使用"设计"报告等,所有这些都保存到数据库中.还可以通过绘制流程图来控制程序流程,通过路由和决策制作,全部绘制在表单上,​​然后再保存到数据库中.

MVVM是否适用于这种应用,或者我是否试图在方孔中安装圆形钉.

你的想法很有用.

wpf drag-and-drop mvvm

17
推荐指数
2
解决办法
2235
查看次数

SQL Server唯一约束(但有时仅限)

想象一下,我有一个包含3列的表格:

ID(唯一ID)描述(varchar 2000)IsDeleted(boolean)

我想添加一个唯一约束,以便所有描述都是唯一的.但仅限于活动记录,即IsDelete = false.如果用户将记录标记为已删除,则可以重新添加与已删除记录具有相同描述的记录,但不能与活动记录相同.

所以,我只想要约束来影响IsDeleted = false的记录.

蒂姆

sql-server database-design

7
推荐指数
1
解决办法
668
查看次数

WPF MVVM更新后台工作者的视图模型

这个senerio有效吗?

我有一个View来维护一个Item.

我有View Model,它将Item对象(实现INotifyPropertyChanged)公开为View绑定的Property.

将Item对象传递给修改它的Backgroundworker是否有效,然后在BackgroundWorking完成时引发PropertyChanged事件?

或者BackgroundWorker不应该修改Item对象.我将使用BackgroundWorker传回的结果更新现有的Item对象.这将在RunWorkerCompleted事件中完成.但这会锁定UI线程并击败拥有背景工作者的对象吗?

困惑?

我会试着解释一下.

用户可以选择创建项目.我创建了视图和视图模型.在View模型中,创建一个空Item对象.他被提供了一个视图来维护项目.在选择"项类型"属性时,这会启动一个复杂的过程来创建用户输入的权限列表.我可以在创建列表时阻止UI线程,但这会给用户带来糟糕的体验.我想将处理传递给后台线程,同时保持UI活着.目前,我设置了一个标志来指示View正在加载的部分,将Item对象传递给BackgroundWorker,后者更新了可观察的Properties集合.当BackgroundWorking完成后,我调用PropertyChanged事件,该事件更新绑定到列表的View部分,并关闭该标志以指示该部分正在加载.这似乎没有任何问题.但我有一种直觉,我不应该在后台线程中更新视图模型中的绑定项.

谢谢蒂姆

wpf mvvm backgroundworker

7
推荐指数
1
解决办法
5158
查看次数