我想创建两种不同类型的DockPanel。如果用户点击一个链接,它会加载DockPanel#1,否则它会加载#2。
我们可以动态交换它们吗?我是WPF的新手。在REALBasic中,我使用GroupPanels,如果需要我会交换它们。
由于
答案 0 :(得分:2)
您可以动态创建控件并使用其他控件填充其内容。或者你可以放置两种类型并隐藏一个你不想显示的类型。
答案 1 :(得分:1)
看看Josh Smith's MVVM Article in MSDN Magazine。 Josh被许多人认为是MVVM Guru,本文在解释基础知识方面做得很好。
考虑到这一点,我可能会将您的应用程序作为MVVM应用程序。
模型将“只是”成为您的数据模型(与MVC非常相似)。
接下来,每个面板都会有一个View。每个View都可以设置为DataTemplate(如文章中所示),也可以设置为UserControl(就像我已经完成并看到过许多其他地方一样)。这样做使其模块化,更易于扩展,维护等。
您的MainWindow实际上也被视为一个视图,您可以在其上放置其他视图。
所有视图都将由一个或多个ViewModel类控制。你有多少取决于你的设计。通常,如果有不同的功能,您将在View和ViewModel之间建立一个或多或少的一对一关系(尽管您当然可以与一个ViewModel共享多个视图)。通常还会有一个“Main ViewModel”类来保存所有内容。
一般而言,鉴于您的问题的一般描述,您的ViewModel可能包含一个命令(或命令),在您的用户选择链接时处理。此命令可能会设置一些属性,这将控制显示哪个View(通常通过绑定)。
抱歉,我不能比这更详细,但如果我这样做,我需要了解更多关于你的设计,我必须写更多东西,这在这个论坛中并不合适