单个WPF窗口中的不同“视图”

时间:2010-10-11 07:03:59

标签: .net wpf vb.net tabs mdi

我正在大学学习VB.Net课程,主要任务是创建WPF应用程序。

应用程序以管理为中心(添加,修改,删除条目等)。因为这些都是完全不同的任务,我正在考虑为我的任务创建一个标签式界面(与Spybot的界面类似:http://www.2-spyware.com/images/data_images/spybot-search-and-destroy1.jpg)。

我对如何绕过这个问题感到有点困惑?顺便说一下,这会归类为MDI吗?

我们建议创建一个列出所有选项的菜单系统 - 选择一个选项后,将打开一个新窗口,进行交互。如果用户想要做其他事情,他将关闭窗口以返回菜单屏幕。

对我来说,这似乎并不是一种优雅的方法,看起来实施我解释过的基于标签的系统似乎是一项有趣的练习。

如果有人能指出我正确的方向,或者给出任何关于我应该如何实现的提示,我将不胜感激。例如,是否可以在单独的xaml / code-behind文件中创建每个选项,然后将这些选项“插入”每个选项卡?

编辑:为了澄清,让我们假设一个室内足球队管理系统。假设用户可以执行五项不同的任务:“注册球员”,“修改球员”,“注册球队”,“修改球队详细信息”,“将球员添加到球队”。

每项任务都与下一项任务分开。创建应用程序的一种方法是创建一个主页面,其中包含每个任务的按钮。当用户单击每个按钮时,将打开一个新窗口(例如,如果用户单击“注册播放器”,则会打开一个新的PlayerRegistration窗口。)

如上所述,我正在寻找的是一种基于标签的方法。在我的应用程序中,如果用户单击“注册播放器”,则整个PlayerRegistration xaml文件将加载到窗口的一部分中。当用户点击任何其他按钮时也会发生同样的情况。

我想一种方法可以想到它将是一个使用框架的网站。

注意:如果您认为我的目标不合适并且有更好的方式来展示我的申请,我很乐意听取一些建议。

2 个答案:

答案 0 :(得分:4)

你听说过MVVM模式吗?看看this article by Josh Smith,他使用的例子做了类似于你想要的事情。

如果您只希望一次显示一个视图,则可以使用ContentControl而不是TabControl,并将其内容绑定到主ViewModel中的Current属性

答案 1 :(得分:1)

您可以结合shell来了解复合应用程序开发,单声道插件(可以将其用于插件架构)。