1

我有一个向导控件,每个步骤都有数据绑定控件。我不能一次将它们全部数据绑定,因为它们依赖于上一步。所以,基本上我在每一步中得到的是保存到上一步的数据库,以及当前步骤的初始化。

关于如何最好地组织我的代码有什么建议吗?它可以工作,但它的可读性不是很好,而且非常脆弱。

编辑:我应该补充一点,我已经看过大多数向导控制教程,但它们似乎都没有解决我想要做的事情。特别是需要在步骤之间保存和检索数据,以及在重新访问该步骤时如何防止它再次检索相同的数据。

4

1 回答 1

0

你所做的听起来很合理。你能更具体地说明你遇到的问题吗?

关于向导控件的一件事,随着您的工作流程变得越来越复杂,我认为您的工作流程状态和向导 SelectedViewIndex 之间的耦合变得有问题。出于这个原因,我最终将它们分开。我通常会使用状态/状态机模式,其中当前工作流状态用于确定适当的向导视图索引(反之亦然)。

如果您正在寻找有关如何实现状态机的示例,我有一个测试应用程序,它可以像向导控件一样遍历对话框,但使用 javascript 除外。查看http://main(dot)test.wishpot.com/WaveDataCollection.Frank/,进入 CollectSamples.aspx 页面后,继续查看源代码,然后在 GotoState 函数处开始查看。

C# 中的状态机有点不同,主要区别在于状态对象是一个具有固定数量的事件处理程序的抽象类,每个状态都从实现每个处理程序的类继承(有些可能会引发异常)。使用 javascript,我们不需要抽象状态类...此外,在服务器端执行此操作时,您将需要能够从存储在数据库中的状态 ID 映射到状态类。

于 2009-02-02T19:29:10.440 回答