帮我设计一个Silverlight应用程序(特别是主/详细数据输入表)

时间:2011-04-11 02:45:26

标签: wpf silverlight silverlight-4.0 wpf-controls binding

我正在为Silverlight应用程序寻找一些设计/架构师建议。

这将是一个TimeTicket(TimeSheet)应用程序,员工可以进入并输入他们的每日时间。

我们有一个现有的ASP .Net应用程序和数据库,这个新应用程序将“使用”。现有的应用程序包括工作,报价,发票,员工,客户等等。这是一个完整的工作成本财务应用程序。

我们希望开始允许员工输入自己的TimeTickets。我决定将其作为Silverlight应用程序,原因有几个。 1. - 为员工提供更丰富的界面(他们中的大多数都不使用“工作成本”应用程序或需要访问它)2。 - 将应用程序分开以添加另一层以帮助防止员工访问的可能性“作业成本”应用程序中的敏感信息3. - 我真的只想使用Silverlight并提高我的WPF / WCF技能(并可能实现MVVM)。谁知道,我可能会购买以重写主应用程序的UI作为Silverlight应用程序。 :)

好的,有关此Silverlight应用程序的更多详细信息....

将会有一些基本的“工作流程”,因为管理员必须“批准”(并可能编辑)每个Employees TimeSheets。所有时间都被发布到工作(可能是“开销”工作,如培训,会议等)或出勤(假期,疾病等)。最后,TimeTickets将由会计中的某人“发布”到“工作成本”应用程序(此时,该人必须从“纸质单”中输入每张票!)。

我需要帮助的主要内容(尽管我会就应用程序提出任何建议)是实际的TimeTicket数据输入表。这将是Master / Detail(Header / LineItem)类型的数据输入表单。

我正在严格寻找“添加”表格的指导(Crud的“C”。大声笑)....(虽然,我确信我也会使用相同的表格进行编辑/更新。)

数据输入表将写入两个表:TimeTicket(主表或表头表)和TimeTicketDetails(子表或LineItem表)。

如果是ASP .Net应用程序,我可以使用FormView作为“Master”和ListView for the Child。让我感到有点难过的是我希望表单以“列表”(或网格)中已有的大约8个“行项目”开头。我考虑过继续使用MVVM框架(只是滚动我自己,没有第三方框架或类似的东西)。这将使我分离Model和ViewModel,并且在实例化时,我可以简单地继续添加我想要开始的8行(到ViewModel)。然后,当用户完成表单(并且当然已经验证)时,我只会将实际使用的行添加到数据库中。想法?

我知道我可能会过于复杂!但是,由于某种原因,我无法决定最好的开始方式。我想最大的原因就是我缺乏Silverlight经验。

另一方面,我一直在关注WCF RIA服务的一些演示和文章,我正在考虑使用该技术。这将作为一个非常小的应用程序开始,但它可能会显着增长,所以我希望有一个良好的起点,以便我可以轻松扩展(实际上,我只是想学习一些新技术和框架......)

非常感谢任何建议!

谢恩

1 个答案:

答案 0 :(得分:0)

除了这个问题太宽泛(只是开始并提出较小的问题)之外,还有两个指针:

  1. 不要推出自己的MVVM框架。虽然这样做很有趣,但它增加了很多工作,最好依靠经过验证的代码。
  2. 至于决定何时将数据添加到数据库:这取决于功能要求。用户期望发生什么以及何时发生?
  3. 编辑

    Silverlight中的主要细节非常简单:

    1. 创建一个集合。
    2. 将Items控件绑定到列表并将其IsSynchronizedWithCurrentItem设置为true。
    3. 然后将ContentControl绑定到同一个集合。
    4. 在ContentControl中添加ContentTemplate,其中包含使用绑定显示详细信息/字段的控件。
    5. 如果将内容控件放在UserControl中,则可以通过以下方式轻松支持向集合添加项目:  1.将空项(或使用默认值)添加到集合中  2.通过在ItemsCollection中选择新项目,使新项目成为当前项目。这样,新元素将可用于编辑。

      通过一些调整,可以支持更复杂的场景,但简而言之就是它。