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