美好的一天,我对 windows phone 很陌生,所以请多多包涵。我需要根据用户选择的内容加载 XAML 布局。例如,如果我有 4 个 XAML 布局 A、B、C、D,当用户选择 C 时,应加载相应的 XAML 布局,如果稍后选择 A,则应该会出现。我可以创建不同的 XAML 布局并使用 OnNavigateTo 方法,但我认为它不是很有效。有没有办法,我可以将 XAML 布局组合在一起,以便在它们之间轻松切换?.. 我听说过使用模板,但实际上找不到任何具体的例子来说明它是如何工作的。任何帮助或链接将不胜感激。谢谢你。
3 回答
据我了解,您不需要使用模板。由于有四种不同的操作与它们相关联的四种不同的视图,因此每个操作都有一个单独的页面应该没有问题。
问题也可能是这个 - 布局有多大不同?如果数据是唯一在它们之间发生变化的东西,您可能会考虑绑定一个视图模型并简单地更改可绑定源。
底线:仅使用页面,或绑定到动态数据的单个页面,具体取决于您的方案。
据我所知,我要求您更喜欢 UI 中的 UserControls 实现。您可以将 A、B、C 和 D 布局作为单独的用户控件,并且可以将这些用户控件放在同一页面中。只需根据在后面的代码中识别它的条件来更改可见性。我想它可能会对你有所帮助。
您可以通过许多不同的方式解决这个问题。如果您不应该在同一页面上加载布局,请为每个视图创建 4 个单独的页面并导航到正确的页面。
如果您需要更新当前视图,您可以选择以下选项之一: - 将所有四个布局放入每个自己的网格中并Visibility="Collapsed"
为每个布局设置。然后,当您需要显示布局时,只需将其 Visibility 更改为 True。- 同上,但使用视觉状态添加一些动画。- 创建 4 个用户控件并动态创建您需要的一个并将其添加到当前页面。
您需要在这里考虑几个因素: - 干净的代码和干净的设计。- 动画和过渡。- 返回键呢?如果用户应该在完成后导航回选择屏幕,请考虑导航到单独的页面。
不要忘记最后一点,这在选择正确的解决方案时可能至关重要。