【发布时间】:2013-01-14 08:20:37
【问题描述】:
我有兴趣创建一个显示一些按钮并根据所选按钮更改视口的应用程序。我的应用程序中的视口是ContentControl,我想在单击按钮时更改其内容。但是,我相信有一种更好的方法,也许通过将我想要呈现给ContentControl 的每个视图的 ViewModel 注入并使用DataTemplates 设置它们的样式(因为我想避免有一个包含许多控件的网格并且只是设置每当我想显示特定视图时,他们的Visibility 属性)。哪种方法对您来说更好?您对此有不同的方法吗?
视图应该类似于以下内容:
谢谢!
【问题讨论】:
-
你现在如何更改内容?
-
“我的问题是 - 你知道另一种更好的方法吗?” - 要回答这个问题,我们需要查看您的代码)
-
我通常使用
ItemsControl显示的 ViewModel 对象的ObservableCollection,其中Button用于ItemTemplate,并将ContentControl.Content绑定到SelectedItem.您可以查看此类代码的示例on my blog -
我还没开始写呢。这只是我想到的第一种方法。在编写代码之前,我想确保我的方向是正确的。
-
@JonathanPerry:从 WPF 的角度来看,使用 PRISM(MVVM 模式)框架可以更好地实现您的功能。您可以在其中创建一个外壳(基本或主屏幕)将其划分为区域,创建视图,使它们交互,基于在一个视图中的选择,您可以更改 UI(基本上在该区域中加载相关视图。)
标签: c# .net wpf viewmodel contentpresenter