私は WPF MultiSelectTreeView を持っています (ここからダウンロード: http://unclassified.software/en/source/multiselecttreeview )。
ここで、ユーザーが選択するアイテムを制御したいと思います。簡単な例は、異なる親の子ノードを選択できないようにすることです。ただし、ViewModel 固有のユース ケースは他にもあります。
PreviewSelectionChanged イベントを使用して条件を直接確認し、それに応じてキャンセル フラグを設定することにより、ウィンドウのコード ビハインドでこれを簡単に実現できます。しかし、View と ViewModel を分離したいので、WindowViewModel でこれを行う方法を探しています。
もちろん、チェックを ViewModel に抽出してビューから呼び出すこともできますが、それは間違っているように見えます。
WindowViewModel _viewModel;
void PreviewSelectionChanged(object sender, PreviewSelectionChangedEventArgs e)
{
e.Cancel = !this._viewModel.CanSelect(e.Item as TreeItemViewModel);
}
誰にでもアイデアがあることを願っています。
-ティムノット90