首页 > 解决方案 > WPF 为每个视图创建一个按钮,将其设置为 ContentControl 的内容

问题描述

我有一个 WPF、MVVM 程序,它的 MainWindow 分为ListBox侧边栏和带有ContentControl. 我想创建一个功能,该功能将为我在项目中拥有的每个视图添加一个按钮并设置其命令,以便单击它将 ContentControl 的内容自动设置为关联的视图,即我不这样做添加新视图时不必手动输入代码。像遍历所有视图文件或类似的东西。

编辑:也许我还是不够清楚。
我有什么和可以做什么 - 每次我向我的项目添加新视图时,都像猴子一样输入“新按钮,yadda yadda”。

我想要什么 - 写一段黑魔法,类似于“这个项目中有 6 个视图,我将只制作 6 个按钮,这样,当点击时,将导航到适当的视图,而不需要写我的人每次添加新视图时都必须编写任何额外的代码行”。

我怎样才能做到这一点,这是一个好主意吗?

标签: c#wpf

解决方案


出于教学目的,我将调用您的“视图”类View

  1. 创建某种集合对象(List<View>ObservableCollection<View>等)来存储所有的Views。

  2. 将此集合分配给依赖项属性。我会打电话Views的。

  3. 为选定/活动视图声明一个依赖属性。我会打电话SelectedView的。

  4. 绑定ListBox.ItemsSourceViews

  5. 绑定ListBox.SelectedItemView

  6. 绑定ContentControl.ContentView一样。

通过上述设置,将ContentControl显示.ViewListBox


推荐阅读