2010-12-13 82 views
0

所以这个问题并不是技术性的,而是更多的概念。在WPF中维护业务对象列表的最佳方法

我有一些与asp.net的经验,但刚刚开始WPF与WCF服务(没有任何经验winforms)。假设我需要维护这个Business Objects的列表。我想在2个解决方案:

  1. 我绑定一个网格,我的对象的列表,并允许用户编辑犯对象的对象时,用户更改网格中关注的行如果没有验证错误。如果存在验证错误,则用户无法更改焦点线。

  2. 允许用户自由编辑对象列表并提交整个集合通过保存按钮对这些对象进行批量更新。只有在网格中没有发生验证错误的情况下才可以提交。验证问题在网格上发出信号,用户可以自由更改关注的行。

这样做的标准(最佳)方法是什么?欢迎任何其他建议。

在此先感谢

PS:刚一说明,该数据源是不是本地的WCF服务在Web服务器被托管的应用程序。

回答

1

我不会说有一个特定的“标准”在这里。您使用的方法将取决于很多因素。

  1. 什么是用户群?并发编辑有很大的潜力,通过记录保存记录有助于减少碰撞的可能性。
  2. 什么是最有效的从用户的角度来看,他们需要“批量编辑”,还是让他们在继续之前获得每一个权利是非常重要的
  3. 如果您进行批量编辑,丢失的更改怎么办?如果用户机器出现故障,或者导致应用程序死机,则执行此操作。
+0

关于并发性的好处...尽管应用程序的这一点不会有这个问题,因为它是一个受限区域。 3的好点。谢谢 – Luis 2010-12-13 14:41:36

1

它确实取决于很多事情,但是由于您提到了WCF服务,我将假设您有一个数据源,它通过您的服务接口暴露给多个客户端(对吗?)。在这种情况下,您可能希望最小化网络流量,所以我建议采用批量更新方法。否则,您将有任何用户所做更改的服务电话。

如果用户有本地数据源,则可能需要考虑第一种方法,因为这样可以最大限度地减少丢失数据的机会,因为每次更改都会提交给数据源。

此外,你可能想看看内置的验证功能的WPF数据网格: http://msdn.microsoft.com/en-us/library/ee622975.aspx

+0

数据源不是本地的。问题已被编辑。谢谢 – Luis 2010-12-13 14:40:46

1

我认为如果你实现了一个网格原型,它不会让你专注于一个新的行,直到你修正了当前行中的验证错误,那么你会对令人难以置信的烦恼感到惊讶事实证明是。

还有第三种方法,你没有提到,这是更新验证,并允许用户离开行处于无效状态。只要用户界面非常清楚某行是否有效,用户就不应该对他的编辑是否已经提交给数据源感到困惑。

相关问题