MVVM 将帮助您。
为您的 MainWindow 视图创建一个 ViewModel。在那里你可以有一个 DetailViewModels 的集合。只需在此处使用ObservableCollection
DetailViewModels 即可。
在您的视图中,将 的 绑定ItemsSource
到TabControl
该集合。
您的 AddTab 按钮可以有一个命令绑定。该命令可以是ICommand
在 MainWindowViewModel 中发布的派生类。按下按钮然后在 MainWindow ViewModel 中结束,添加另一个 DetailViewModel 并以这种方式更新 View。
在这里查看这个关于 MVVM 的优秀视频教程:Jason Dollinger on MVVM
他通过 Main 和 Detail ViewModel 和命令的示例解释了如何做到这一点。
他在视频中开发的源代码可在此处获得:Lab49 上的源代码
或许更容易创建一个仅由TabControl
. 然后将 的 设置DataContext
为TabControl
那个 TabControlViewModel 。将您的 MainWindowViewModel 中的 TabControlViewModel 作为公共属性发布,以完成此操作。
您的代码隐藏将是空的,除了一些 InitializeComponent 可能。