/// <summary>User has selected a node. Raise event for presenter.</summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="TreeViewEventArgs"/> instance containing the event data.</param> private void OnAfterSelect(object sender, EventArgs e) { try { if (SelectedNodeChanged != null) { treeview1.CursorChanged -= OnAfterSelect; NodeSelectedArgs selectionChangedData = new NodeSelectedArgs(); selectionChangedData.OldNodePath = previouslySelectedNodePath; TreePath selPath; TreeViewColumn selCol; treeview1.GetCursor(out selPath, out selCol); selectionChangedData.NewNodePath = GetFullPath(selPath); if (selectionChangedData.NewNodePath != selectionChangedData.OldNodePath) { SelectedNodeChanged.Invoke(this, selectionChangedData); } previouslySelectedNodePath = selectionChangedData.NewNodePath; treeview1.CursorChanged += OnAfterSelect; } } catch (Exception err) { ShowError(err); } }
internal async Task SetSelectedNodeAsync(TNode node) { this.SelectedNode = node; await SelectedNodeChanged.InvokeAsync(node); StateHasChanged(); }
/// <summary>User has selected a node. Raise event for presenter.</summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="TreeViewEventArgs"/> instance containing the event data.</param> private void OnAfterSelect(object sender, EventArgs e) { try { if (SelectedNodeChanged != null) { treeview1.CursorChanged -= OnAfterSelect; NodeSelectedArgs selectionChangedData = new NodeSelectedArgs(); selectionChangedData.OldNodePath = previouslySelectedNodePath; TreePath selPath; TreeViewColumn selCol; treeview1.GetCursor(out selPath, out selCol); selectionChangedData.NewNodePath = GetFullPath(selPath); if (selectionChangedData.NewNodePath != selectionChangedData.OldNodePath) { SelectedNodeChanged.Invoke(this, selectionChangedData); } previouslySelectedNodePath = selectionChangedData.NewNodePath; treeview1.CursorChanged += OnAfterSelect; } else { // Presenter is ignoring the SelectedNodeChanged event. // We should scroll to the newly selected node so the user // can actually see what they've selected. treeview1.GetCursor(out TreePath path, out _); treeview1.ScrollToCell(path, null, false, 0, 1); } } catch (Exception err) { ShowError(err); } }
static public void ChangeSelection(object sender, SelectionSet set) { SelectedTunnels = new List <DBTunnel>(); SelectedNodes = new List <DBNode>(); if (set.Count != 0) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; Editor ed = doc.Editor; var ids = set.GetObjectIds(); Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager; Utils.TransactionControl(() => { Entity entity = null; foreach (var id in ids) { entity = (Entity)tm.GetObject(id, OpenMode.ForRead, false); if (entity.IsErased == true) { return; } long handleValue = entity.Handle.Value; if (entity is BaseTunnel) { DBTunnel dbTunnel = Utils.GetEntityFromDB(handleValue) as DBTunnel; if (dbTunnel == null) { return; } else { SelectedTunnels.Add(dbTunnel); } } else if (entity is Node) { DBNode dbNode = Utils.GetEntityFromDB(handleValue) as DBNode; if (dbNode == null) { return; } else { SelectedNodes.Add(dbNode); } } } }); } SelectedTunnelChanged?.Invoke(sender, SelectedTunnels); SelectedNodeChanged?.Invoke(sender, SelectedNodes); }
/// <summary>User has selected a node. Raise event for presenter.</summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="TreeViewEventArgs"/> instance containing the event data.</param> private void OnAfterSelect(object sender, TreeViewEventArgs e) { if (SelectedNodeChanged != null) { NodeSelectedArgs selectionChangedData = new NodeSelectedArgs(); selectionChangedData.OldNodePath = previouslySelectedNodePath; selectionChangedData.NewNodePath = FullPath(e.Node); SelectedNodeChanged.Invoke(this, selectionChangedData); previouslySelectedNodePath = selectionChangedData.NewNodePath; } }
/// <summary>User has selected a node. Raise event for presenter.</summary> /// <param name="sender">The sender.</param> /// <param name="e">The <see cref="TreeViewEventArgs"/> instance containing the event data.</param> private void OnAfterSelect(object sender, EventArgs e) { if (SelectedNodeChanged != null) { NodeSelectedArgs selectionChangedData = new NodeSelectedArgs(); selectionChangedData.OldNodePath = previouslySelectedNodePath; TreePath selPath; TreeViewColumn selCol; treeview1.GetCursor(out selPath, out selCol); selectionChangedData.NewNodePath = FullPath(selPath); SelectedNodeChanged.Invoke(this, selectionChangedData); previouslySelectedNodePath = selectionChangedData.NewNodePath; } }
/// <summary> /// 更新绑定数据 /// </summary> private void UpdateBindData() { if (SelectedNodesDictionary.Count == 0) { SelectedKey = null; SelectedNode = null; SelectedData = default(TItem); SelectedKeys = Array.Empty <string>(); SelectedNodes = Array.Empty <TreeNode <TItem> >(); SelectedDatas = Array.Empty <TItem>(); } else { var selectedFirst = SelectedNodesDictionary.FirstOrDefault(); SelectedKey = selectedFirst.Value?.Key; SelectedNode = selectedFirst.Value; SelectedData = selectedFirst.Value.DataItem; SelectedKeys = SelectedNodesDictionary.Select(x => x.Value.Key).ToArray(); SelectedNodes = SelectedNodesDictionary.Select(x => x.Value).ToArray(); SelectedDatas = SelectedNodesDictionary.Select(x => x.Value.DataItem).ToArray(); } if (SelectedKeyChanged.HasDelegate) { SelectedKeyChanged.InvokeAsync(SelectedKey); } if (SelectedNodeChanged.HasDelegate) { SelectedNodeChanged.InvokeAsync(SelectedNode); } if (SelectedDataChanged.HasDelegate) { SelectedDataChanged.InvokeAsync(SelectedData); } if (SelectedKeysChanged.HasDelegate) { SelectedKeysChanged.InvokeAsync(SelectedKeys); } }
private void OnSelectNode(TNode node) { SelectedNode = node; SelectedNodeChanged.InvokeAsync(node); }
private void TvDbItems_AfterSelect(object sender, TreeViewEventArgs e) { SelectedNodeChanged?.Invoke(sender, e); }
private void OnSelectedNodeChanged() => SelectedNodeChanged?.Invoke();
private void NodeChanged(SelectedNodeChanged _obj) { SelectedNode = _obj.Node; }