我有一个 WPF MultiSelectTreeView(从这里下载:http ://unclassified.software/en/source/multiselecttreeview )。
现在我想控制用户选择哪些项目。一个简单的例子是他不应该能够选择不同父母的子节点。但也有更多特定于 ViewModel 的用例。
通过使用 PreviewSelectionChanged 事件、直接检查条件并相应地设置取消标志,可以很容易地在 Window 的代码隐藏中实现这一点。但由于我想获得 View 和 ViewModel 的分离,我正在寻找一种在我的 WindowViewModel 中执行此操作的方法。
当然你也可以将检查提取到 ViewModel 并从视图中调用它,但它看起来不对:
WindowViewModel _viewModel;
void PreviewSelectionChanged(object sender, PreviewSelectionChangedEventArgs e)
{
e.Cancel = !this._viewModel.CanSelect(e.Item as TreeItemViewModel);
}
我希望任何人都有一个想法。
- timnot90