ここで少し単純化しています:
私はタブ コントロールを持っており、個々のタブがさらにタブを作成できるようにする必要があります。できれば兄弟。そのため、タブ コントロールを親、そのタブ ページを子と呼んでいます。
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 で (たとえば) ボタンを押すと、ParentViewModel オブジェクトのコレクションに別の ChildViewModel が追加されるようにすることです。
リレー コマンド、ルーティングされたコマンド、relativesource バインディング、依存性注入パターンなどについて多くのことを読んだことがありますが、これを達成するための「適切な」(MVVM の意味での) 方法と、それが最適な方法を教えてください。終わり。ありがとうございました!