void FileTreeView_NodeActivated(object sender, FileTreeNodeActivatedEventArgs e) { e.Handled = true; var asmRefNode = e.Node as IAssemblyReferenceNode; if (asmRefNode != null) { var asm = fileTreeView.FileManager.Resolve(asmRefNode.AssemblyRef, asmRefNode.GetModule()); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { var asmNode = fileTreeView.FindNode(asm); if (asmNode != null) { fileTreeView.TreeView.SelectItems(new ITreeNodeData[] { asmNode }); } })); return; } var tab = ActiveTabContentImpl; if (tab == null) { return; } SetFocus(tab); }
void FileTreeView_NodeActivated(object sender, FileTreeNodeActivatedEventArgs e) { e.Handled = true; var asmRefNode = e.Node as IAssemblyReferenceNode; if (asmRefNode != null) { var asm = fileTreeView.FileManager.Resolve(asmRefNode.AssemblyRef, asmRefNode.GetModule()); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { var asmNode = fileTreeView.FindNode(asm); if (asmNode != null) { fileTreeView.TreeView.SelectItems(new ITreeNodeData[] { asmNode }); } })); return; } var derivedTypeNode = e.Node as IDerivedTypeNode; if (derivedTypeNode != null) { var td = derivedTypeNode.TypeDef; Debug.Assert(td != null); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { var typeNode = fileTreeView.FindNode(td); if (typeNode != null) { fileTreeView.TreeView.SelectItems(new ITreeNodeData[] { typeNode }); } })); return; } var baseTypeNode = e.Node as IBaseTypeNode; if (baseTypeNode != null) { var tdr = baseTypeNode.TypeDefOrRef; Debug.Assert(tdr != null); var td = tdr?.ScopeType.ResolveTypeDef(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { var typeNode = fileTreeView.FindNode(td); if (typeNode != null) { fileTreeView.TreeView.SelectItems(new ITreeNodeData[] { typeNode }); } })); return; } var tab = ActiveTabContentImpl; if (tab == null) { return; } SetFocus(tab); }
public bool RaiseNodeActivated(IFileTreeNodeData node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } if (NodeActivated == null) { return(false); } var e = new FileTreeNodeActivatedEventArgs(node); NodeActivated(this, e); return(e.Handled); }