首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NavigationWindow数据流

NavigationWindow数据流
EN

Stack Overflow用户
提问于 2011-01-27 03:14:28
回答 2查看 205关注 0票数 0

我现在正在编写我的第一个wpf应用程序。

我想在每个页面上使用用户选择的NavigationWindow,所有的数据都应该在下一页可用,我有大约6页。

我应该如何传递所有的数据?通过构造函数?或者在WPF中有一些更聪明的方法。

在最后一页上,将有许多数据路径从前几页。

EN

回答 2

Stack Overflow用户

发布于 2011-01-27 03:24:59

我会从两种方式中的一种来解决这个问题:代码隐藏方式(很容易,但很难扩展,也会变得非常混乱),以及MVVM方式(需要一些学习,分离关注点,易于扩展,管理)。

在代码隐藏的方式中,我只需要一个Tab控件,其中的选项卡标题按照您希望的方式设置样式(您可以设置它们的样式,使其看起来像您想要的任何样式)。在代码隐藏中,您可能会有一些逻辑,指定在满足Y条件之前,X Tab不可用或不可见。

有一种更好的方法,但它有一点学习曲线,MVVM设计模式。您将有6个页面对象,它们实际上只是定义页面内容的CLR对象(例如,如果是一个调查问卷,您的页面对象将包含问题对象和标题对象)。

您可以有几个视图,一个导航视图和一个页面视图。NavigationView将被绑定到一个NavigationViewModel,该The将具有更改页面所需的逻辑。PageView将绑定到6个PageViewModels中的一个,并且PageViews DataContext (提供该绑定)可以基于NavigationViews逻辑进行更改。

票数 0
EN

Stack Overflow用户

发布于 2011-02-14 05:18:30

夜行者

从你的解释中很难确切地知道你想做什么。首先,NavigationWindow是您的应用程序的框架,我想您知道这一点,但我只想确保我们了解,我们不是在创建NavigationWindow的新实例。我想你指的是“页面”。页面是导航窗口的内容,表示您希望在NavigationWindow提供的ContentPresenter中显示的一些目标。

我再一次不确定你是如何使用“数据路径”这个短语的。通常,您可以直接在项目中或在附属项目中创建页面,然后使用Pack URI引用它们。可以在这里找到一个如何构造Pack URI的示例。

http://msdn.microsoft.com/en-us/library/aa970069(v=vs.85).aspx

然后,您可以使用如下表达式导航到包URL:

代码语言:javascript
复制
 this.Navigate(new Uri("pack://application:,,,/MyAssembly;component/MyPage.xaml", UriKind.Absolute);

如果您不想涉及导航框架的所有细节,而只想为您的用户专注于应用程序,您可以查看我组装的NavigationControl的专业版本:

http://www.teraque.com/products/explorer-chrome-suite/

代码语言:javascript
复制
There's an free demo you can download.  If this is was you are looking to do I can give you pointers if you don't want to purchase the package directly.

由衷地,

唐纳德·罗伊·艾瑞

donald.roy.airey@teraque.com

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4808862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档