private T GetClickedNode <T>(Point position) where T : TraceLab.UI.WPF.ViewModels.CLVBaseNode { T node = null; DependencyObject clickedVisualElement = ComponentLibrary.InputHitTest(position) as DependencyObject; TreeViewItem itemContainer = null; if (clickedVisualElement != null) { itemContainer = clickedVisualElement.GetParent <TreeViewItem>(this); } if (clickedVisualElement != null && itemContainer != null) { var parent = itemContainer.GetParent <TreeViewItem>(this); var generator = ComponentLibrary.ItemContainerGenerator; if (parent != null) { generator = parent.ItemContainerGenerator; } var clickedItem = generator.ItemFromContainer(itemContainer); node = clickedItem as T; } return(node); }
public OwnershipHelper(ComponentLibrary componentLibrary) { this.componentLibrary = componentLibrary; }