private void viewModel_ExpansionUpdateNeeded(object sender, CustomEventArgs <ExpansionUpdateEvent> e) { SequenceElement sequenceElement = sender as SequenceElement; DependencyObject dObject = null; ExpansionUpdateEvent updateEvent = e.Value; if (updateEvent == ExpansionUpdateEvent.Filter) { ExpandMatchedNode(sender); // Keeping way open for future filtering feature } else { if (this.viewModel.SelectedAnimationElementRoot != null && this.viewModel.SelectedAnimationParent != null) { if (this.viewModel.SelectedAnimationElement is SequenceElement) // Sequence within a sequence { TreeViewItem item = treeViewAnimations.ItemContainerGenerator.ContainerFromItem(this.viewModel.SelectedAnimationElementRoot) as TreeViewItem; dObject = FindTreeViewItemUnderTreeViewItemByModelName(item, this.viewModel.SelectedAnimationElement.Name); } else if (this.viewModel.SelectedAnimationElementRoot.Name == this.viewModel.SelectedAnimationParent.Name) // They are the same element { dObject = treeViewAnimations.GetItemFromSelectedObject(this.viewModel.SelectedAnimationParent); } else { TreeViewItem item = treeViewAnimations.ItemContainerGenerator.ContainerFromItem(this.viewModel.SelectedAnimationElementRoot) as TreeViewItem; dObject = FindTreeViewItemUnderTreeViewItemByModelName(item, this.viewModel.SelectedAnimationParent.Name); } } else if (this.viewModel.SelectedAnimationElementRoot == null && this.viewModel.SelectedAnimationElement is SequenceElement) { dObject = treeViewAnimations.GetItemFromSelectedObject(this.viewModel.SelectedAnimationElement); } TreeViewItem tvi = dObject as TreeViewItem; if (tvi != null) { AnimationElement model = tvi.DataContext as AnimationElement; if (tvi.Items != null && tvi.Items.Count > 0) { if (updateEvent != ExpansionUpdateEvent.Delete) { tvi.IsExpanded = true; } else { UpdateExpansions(tvi); } } else { tvi.IsExpanded = false; } } } }
private void viewModel_ExpansionUpdateNeeded(object sender, CustomEventArgs <ExpansionUpdateEvent> e) { CrowdModel crowdModel = sender as CrowdModel; DependencyObject dObject = null; ExpansionUpdateEvent updateEvent = e.Value; if (updateEvent == ExpansionUpdateEvent.Filter) { ExpandMatchedNode(sender); } else if (updateEvent == ExpansionUpdateEvent.DragDrop) { if (this.currentDropItemNode != null) { this.currentDropItemNode.IsExpanded = true; } } else { if (this.selectedCrowdRoot != null && crowdModel != null) { TreeViewItem item = treeViewCrowd.ItemContainerGenerator.ContainerFromItem(this.selectedCrowdRoot) as TreeViewItem; dObject = FindTreeViewItemUnderTreeViewItemByModelName(item, crowdModel.Name); if (dObject == null) { dObject = treeViewCrowd.GetItemFromSelectedObject(crowdModel); } } else { dObject = treeViewCrowd.GetItemFromSelectedObject(crowdModel); } TreeViewItem tvi = dObject as TreeViewItem; if (tvi != null) { ICrowdMemberModel model = tvi.DataContext as ICrowdMemberModel; if (tvi.Items != null && tvi.Items.Count > 0) { if (updateEvent != ExpansionUpdateEvent.Delete) { tvi.IsExpanded = true; } else { UpdateExpansions(tvi); } } else { tvi.IsExpanded = false; } } } }