0

我想创建两种不同类型的 DockPanel。如果用户点击一个链接,它会加载 DockPanel #1,否则会加载 #2。

我们可以动态交换它们吗?我是 WPF 的新手。在 REALBasic 中,我会使用 GroupPanels,如果需要,我会交换它们。

谢谢

4

2 回答 2

2

U 可以动态创建控件并使用其他控件填充其内容。或者你可以只放置两种类型并隐藏你不想显示的一种。

于 2011-06-09T15:32:04.627 回答
1

看看Josh Smith 在 MSDN 杂志上的 MVVM 文章。Josh 被许多人认为是 MVVM 大师,这篇文章很好地解释了基础知识。

考虑到这一点,我可能会将您的应用程序作为 MVVM 应用程序。

该模型将“只是”成为您的数据模型(很像在 MVC 中)。

接下来,您的每个面板都会有一个视图。每个视图都可以设置为 DataTemplate(如文章中所示),或设置为 UserControl(正如我在许多其他地方所做的那样)。这样做可以使其模块化,并且更易于扩展、维护等。

您的 MainWindow 实际上也被认为是一个视图,您可以在其上放置其他视图。

所有视图都将由一个或多个 ViewModel 类控制。你有多少取决于你的设计。通常,如果有不同的功能,您将在 View 和 ViewModel 之间建立或多或少的一对一关系(尽管您当然可以与单个 ViewModel 共享多个 View)。通常还会有一个“Main ViewModel”类将所有东西放在一起。

一般而言,鉴于您的问题的一般描述,您的 ViewModel 可能会包含一个命令(或多个命令),当您的用户选择链接时处理。这个命令可能会设置一些属性,它将控制显示哪个视图(通常通过绑定)。

抱歉,我无法得到比这更详细的信息,但如果我这样做了,我需要更多地了解你的设计,而且我必须写更多的东西,这在这个论坛中并不合适。

于 2011-06-09T17:38:22.907 回答