我有一个 Silverlight 应用程序,我试图在 XAML 文件中制作向导的每一步,而不是硬编码的 C#。
问题是我不明白在单击每个屏幕的下一步按钮后我将如何在它们之间切换。
做这个的最好方式是什么?我在互联网上看到了一些关于动态加载 XAML 的教程,但它们似乎都不适用于我:/
我有一个 Silverlight 应用程序,我试图在 XAML 文件中制作向导的每一步,而不是硬编码的 C#。
问题是我不明白在单击每个屏幕的下一步按钮后我将如何在它们之间切换。
做这个的最好方式是什么?我在互联网上看到了一些关于动态加载 XAML 的教程,但它们似乎都不适用于我:/
使用 ChildWindow 作为父窗口。然后创建多个用户控件,它们将被框在父窗口的内容中。在父窗口的代码隐藏中,将用户控件加载到列表中,并将除第一个之外的所有控件的可见性设置为“已折叠”。当用户按下 Next/Prev 按钮时,从列表中拉出适当的 UserControl(跟踪当前索引)并使其“可见”,同时使当前控件“折叠”。
您的所有导航代码都将在父窗口中,但父窗口不会关心向导步骤本身的内容。
每个 UserControl 都可以在 XAML 中编码为单独的控件,因此您仍然可以将控件与向导导航逻辑分开。
然后,您可以创建一个类类型,该类类型将包含各种向导控件的所有选项。将对对象实例的引用传递给每个控件以供它们更新。当您到达向导结束时,您的选项对象应该保持所有向导步骤的状态,并且父窗口可以将其返回给应用程序。
我建议研究Silverlight Navigation Framework。它允许您使用“url”在“页面”(这是您的 XAML 用户控件)之间导航。它还允许用户使用浏览器中的来回按钮,这可能是您想要允许的,也可能不是。
当您选择新项目、Silverlight、“Silverlight 导航应用程序”时,有一个 VS 2010 模板可以帮助您入门。