From bfb74abef476dce8c73ae12b6e013c20554967e1 Mon Sep 17 00:00:00 2001 From: "Aaron (Qilong)" <173288704@qq.com> Date: Mon, 17 Jun 2024 14:30:49 -0400 Subject: [PATCH] DYN-6836 Arrange call crash guard (#15319) --- src/DynamoCoreWpf/UI/InOutPortPanel.cs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/DynamoCoreWpf/UI/InOutPortPanel.cs b/src/DynamoCoreWpf/UI/InOutPortPanel.cs index 52b949180b7..a58d7824271 100644 --- a/src/DynamoCoreWpf/UI/InOutPortPanel.cs +++ b/src/DynamoCoreWpf/UI/InOutPortPanel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; @@ -26,14 +26,21 @@ protected override Size ArrangeOverride(Size arrangeSize) double x = 0, y = 0; foreach (UIElement child in this.Children) { - var portVm = generator.ItemFromContainer(child) as PortViewModel; - var lineIndex = portVm.PortModel.LineIndex; - var multiplier = ((lineIndex == -1) ? itemIndex : lineIndex); - var portHeight = portVm.PortModel.Height; + try + { + var portVm = generator.ItemFromContainer(child) as PortViewModel; + var lineIndex = portVm.PortModel.LineIndex; + var multiplier = ((lineIndex == -1) ? itemIndex : lineIndex); + var portHeight = portVm.PortModel.Height; - y = multiplier * portHeight; - child.Arrange(new Rect(x, y, arrangeSize.Width, portHeight)); - itemIndex = itemIndex + 1; + y = multiplier * portHeight; + child.Arrange(new Rect(x, y, arrangeSize.Width, portHeight)); + itemIndex = itemIndex + 1; + } + catch (Exception ex) + { + Analytics.TrackException(ex, true); + } } return base.ArrangeOverride(arrangeSize);