我在这里稍微简化一下:
我有一个选项卡控件,并且希望单个选项卡能够创建更多选项卡;兄弟姐妹,如果你愿意的话。所以我称选项卡控件为父控件,其选项卡为子控件。
使用 MVVM,我的选项卡控件视图模型是这样的:
class ParentViewModel
{
ObservableCollection<ChildViewModel> _pages;
public ObservableCollection<ChildViewModel> Pages
{
get
{
if (_pages == null)
_pages = new ObservableCollection<ChildViewModel>();
return _pages;
}
}
public ParentViewModel()
{
Pages.Add(new ChildViewModel());
}
}
所以我的 ParentViewModel 上有一个 ChildViewModel 对象的集合。
这是一种享受,从 ParentViewModel 内部,我当然可以轻松地将我想要的所有额外 ChildViewModel 对象添加到我的集合中,并将它们很好地反映在我的视图中。
我想要做的是允许在 ChildView 上按下按钮(例如)以导致将另一个 ChildViewModel 添加到 ParentViewModel 对象的集合中。
我已经阅读了很多关于中继命令、路由命令、relativesource 绑定、依赖注入模式等的内容,但是有人可以告诉我实现这一点的“正确”(在 MVVM 意义上)的方式,以及最好的方式完毕。谢谢!