//图层显示开关 private void CheckBox_Click(object sender, RoutedEventArgs e) { CheckBox checkBox = sender as CheckBox; DependencyObject parent = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(checkBox)); //找到chkbox的ContentPresenter ContentPresenter tvi = parent as ContentPresenter; if (tvi != null) { List <UnityTreeModel> list = treeView.ItemsSource as List <UnityTreeModel>; UnityTreeModel node = tvi.DataContext as UnityTreeModel; TreeViewItem tvitem = FindTreeViewItemContainer(treeView, node); tvitem.IsSelected = true; SetModelVisible(node, checkBox.IsChecked.Value); SetObjShowStateMessage message = new SetObjShowStateMessage(); message.path = GetFullPath(node); message.iSShow = checkBox.IsChecked.Value; (view3d.view as U3dViewModel).ExcuteCommand(message); } }
public void SetVisible(List <UnityTreeModel> model, int level) { if (level == layerNames.Count()) { return; } foreach (UnityTreeModel _model in model) { if (_model.Name == layerNames[level]) { SetVisible(_model.childs, level + 1); } else { SetChildVisble(_model); SetObjShowStateMessage message = new SetObjShowStateMessage(); message.path = GetFullPath(_model); message.iSShow = false; (view3d.view as U3dViewModel).ExcuteCommand(message); } } }