/// <summary> /// Called after the visual tree of the control has been built. /// Search for and cache references to named parts defined in the XAML control template for NetworkView. /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); // // Cache the parts of the visual tree that we need access to later. // this.nodeItemsControl = (NodeItemsControl)this.Template.FindName("PART_NodeItemsControl", this); if (this.nodeItemsControl == null) { throw new ApplicationException("Failed to find 'PART_NodeItemsControl' in the visual tree for 'NetworkView'."); } // // Synchronize initial selected nodes to the NodeItemsControl. // if (this.initialSelectedNodes != null && this.initialSelectedNodes.Count > 0) { foreach (var node in this.initialSelectedNodes) { this.nodeItemsControl.SelectedItems.Add(node); } } this.initialSelectedNodes = null; // Don't need this any more. this.nodeItemsControl.SelectionChanged += new SelectionChangedEventHandler(nodeItemsControl_SelectionChanged); this.connectionItemsControl = (ItemsControl)this.Template.FindName("PART_ConnectionItemsControl", this); if (this.connectionItemsControl == null) { throw new ApplicationException("Failed to find 'PART_ConnectionItemsControl' in the visual tree for 'NetworkView'."); } this.dragSelectionCanvas = (FrameworkElement)this.Template.FindName("PART_DragSelectionCanvas", this); if (this.dragSelectionCanvas == null) { throw new ApplicationException("Failed to find 'PART_DragSelectionCanvas' in the visual tree for 'NetworkView'."); } this.dragSelectionBorder = (FrameworkElement)this.Template.FindName("PART_DragSelectionBorder", this); if (this.dragSelectionBorder == null) { throw new ApplicationException("Failed to find 'PART_dragSelectionBorder' in the visual tree for 'NetworkView'."); } this.gridCanvas = (FrameworkElement)this.Template.FindName("PART_GridCanvas", this); if (this.gridCanvas == null) { throw new ApplicationException("Failed to find 'PART_GridCanvas' in the visual tree for 'NetworkView'."); } this.gridCanvas.Loaded += this.BuildGrid; }
/// <summary> /// Called after the visual tree of the control has been built. /// Search for and cache references to named parts defined in the XAML control template for NetworkView. /// </summary> public override void OnApplyTemplate() { base.OnApplyTemplate(); // // Cache the parts of the visual tree that we need access to later. // this.nodeItemsControl = (NodeItemsControl)this.Template.FindName("PART_NodeItemsControl", this); if (this.nodeItemsControl == null) { throw new ApplicationException("Failed to find 'PART_NodeItemsControl' in the visual tree for 'NetworkView'."); } // // Synchronize initial selected nodes to the NodeItemsControl. // if (this.initialSelectedNodes != null && this.initialSelectedNodes.Count > 0) { foreach (var node in this.initialSelectedNodes) { this.nodeItemsControl.SelectedItems.Add(node); } } this.initialSelectedNodes = null; // Don't need this any more. this.nodeItemsControl.SelectionChanged += new SelectionChangedEventHandler(nodeItemsControl_SelectionChanged); this.connectionItemsControl = (ItemsControl)this.Template.FindName("PART_ConnectionItemsControl", this); if (this.connectionItemsControl == null) { throw new ApplicationException("Failed to find 'PART_ConnectionItemsControl' in the visual tree for 'NetworkView'."); } this.dragSelectionCanvas = (FrameworkElement)this.Template.FindName("PART_DragSelectionCanvas", this); if (this.dragSelectionCanvas == null) { throw new ApplicationException("Failed to find 'PART_DragSelectionCanvas' in the visual tree for 'NetworkView'."); } this.dragSelectionBorder = (FrameworkElement)this.Template.FindName("PART_DragSelectionBorder", this); if (this.dragSelectionBorder == null) { throw new ApplicationException("Failed to find 'PART_dragSelectionBorder' in the visual tree for 'NetworkView'."); } }