私は、ユーザーがデータをブラウズできるようにするアプリケーションを作成しています.FirefoxのUIスタイルを使用したいと思います。 。私はまた、できるだけModel-View-ViewModelパターンを使ってこれをやろうとします。MVVMとウィンドウリスト
新しいタブを開くことは、MVVMで処理するのに十分なほど簡単です。 TabViewModelのObservableCollectionを作成し、そのコレクションをTabControlのItemsSourceにバインドして、新しいTabViewを開くことは理論的には新しいTabViewModelをコレクションに追加するのと同じくらい簡単です。
ここに私に興味のある質問があります:新しいウィンドウを開くために同じことをする方法はありますか?つまり、WindowViewModelのObservableCollectionをItemsSource ...のアプリケーションのWindowsコレクションにバインドするのですか?...新しいWindowViewModelをobservableコレクションに追加すると、新しいウィンドウが自動的に開きますか?そしてStartupUriを設定するのではなく、最初のWindowViewModelをコレクションに追加するだけです。
私は実際にデータバインドApplication.Windowsは、何がへのViewModel層のための最善の方法だろうことはできませんので、新しいWindowViewModelを追加し、新しいウィンドウが自動的に表示されてい
- を。
- WindowViewModelを削除し、そのウィンドウを自動的に閉じるようにします。
- ユーザーがウィンドウを閉じると、コレクションからWindowViewModelを削除します。
私はINotifyCollectionChangedを監視し、開く/コレクション・イベントに応答してウィンドウを閉じ、自分自身のオブジェクトを書くことができますが、私はそれが最善の方法だかどうかはわからない - それがある場合、私はわかりませんそれをアプリケーションにフックする最善の方法を教えてください。誰でもこれについて最善の方法を考えている?