From ba06e2e942443b6a9f1f01c8ec93c13ece7c7504 Mon Sep 17 00:00:00 2001 From: Vitaly Knyazev Date: Sun, 29 Jan 2023 12:12:35 +0000 Subject: [PATCH 1/2] Do not throw when Series is null, in rare cases it causes unnecessary app crash --- .../Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs b/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs index 49236e171..0ee554a9f 100644 --- a/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs +++ b/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs @@ -242,7 +242,7 @@ public static DataTemplate GetIntersectionTemplate(DependencyObject instance) { if (instance == null) { - throw new ArgumentNullException(); + return null; } return instance.GetValue(IntersectionTemplateProperty) as DataTemplate; From e3f366b3b45351f0fb50d67d3021436fcc06ec21 Mon Sep 17 00:00:00 2001 From: Vitaly Knyazev Date: Sun, 24 Nov 2024 13:19:14 +0000 Subject: [PATCH 2/2] Fixed another rare NRE in ChartTrackBallBehavior.cs, updated packages, excluded Map and Drawing from NuGet package --- BuildTools/BuildNuGet.bat | 2 +- BuildTools/BuildNuget.UWP.proj | 2 +- .../Package.UniversalWindowsPlatform.nuspec | 2 +- ...ik.UI.for.UniversalWindowsPlatform.targets | 8 ------- Controls/Chart/Chart.UWP/Chart.UWP.csproj | 12 ++++++----- .../Trackball/ChartTrackBallBehavior.cs | 21 ++++++++++++------- Controls/Core.UWP/Core.UWP.csproj | 6 ++++-- Controls/Data.UWP/Data.UWP.csproj | 6 ++++-- .../DataControls.UWP/DataControls.UWP.csproj | 6 ++++-- .../DataVisualization.UWP.csproj | 12 ++++++----- Controls/Grid/Grid.UWP/Grid.UWP.csproj | 12 ++++++----- Controls/Input/Input.UWP/Input.UWP.csproj | 6 ++++-- .../Primitives.UWP/Primitives.UWP.csproj | 10 +++++---- .../UAP.Tests/Chart.Tests/Chart.Tests.csproj | 2 +- .../DataControls.Tests.csproj | 2 +- .../UAP.Tests/Grid.Tests/Grid.Tests.csproj | 2 +- .../UAP.Tests/Input.Tests/Input.Tests.csproj | 2 +- 17 files changed, 63 insertions(+), 50 deletions(-) diff --git a/BuildTools/BuildNuGet.bat b/BuildTools/BuildNuGet.bat index 258834e5b..77f2abedf 100644 --- a/BuildTools/BuildNuGet.bat +++ b/BuildTools/BuildNuGet.bat @@ -1,2 +1,2 @@ SET MSBUILD=%WINDIR%\microsoft.net\framework\v4.0.30319\MSBuild.exe -%MSBUILD% BuildNuget.UWP.proj /property:Version=1.0.2.11 \ No newline at end of file +%MSBUILD% BuildNuget.UWP.proj /property:Version=1.0.2.14-patched \ No newline at end of file diff --git a/BuildTools/BuildNuget.UWP.proj b/BuildTools/BuildNuget.UWP.proj index 317e936a7..8ef77417e 100644 --- a/BuildTools/BuildNuget.UWP.proj +++ b/BuildTools/BuildNuget.UWP.proj @@ -15,7 +15,7 @@ - 1.0.2.11 + 1.0.2.14-patched $([System.IO.Path]::GetFullPath('$(DeployDirectory)')) $(BinariesTargetDirectory) diff --git a/BuildTools/Nuspecs.UWP/Package.UniversalWindowsPlatform.nuspec b/BuildTools/Nuspecs.UWP/Package.UniversalWindowsPlatform.nuspec index eb91901a1..a8e2b4969 100644 --- a/BuildTools/Nuspecs.UWP/Package.UniversalWindowsPlatform.nuspec +++ b/BuildTools/Nuspecs.UWP/Package.UniversalWindowsPlatform.nuspec @@ -12,7 +12,7 @@ images\uwp.png true UI for Universal Windows Platform is a toolset for building Universal Windows Platform apps for the Windows Store and the enterprise. The library is designed to offer the same user experience, functionality and behavior on Windows devices of all form factors. - For full release notes see https://github.com/telerik/UI-For-UWP/releases/tag/1.0.2.11 + For full release notes see https://github.com/telerik/UI-For-UWP/releases/tag/1.0.2.14-patched UWP Windows Telerik Controls XAML C# en-US diff --git a/BuildTools/Nuspecs.UWP/Telerik.UI.for.UniversalWindowsPlatform.targets b/BuildTools/Nuspecs.UWP/Telerik.UI.for.UniversalWindowsPlatform.targets index 3da90efbb..d3166c8dd 100644 --- a/BuildTools/Nuspecs.UWP/Telerik.UI.for.UniversalWindowsPlatform.targets +++ b/BuildTools/Nuspecs.UWP/Telerik.UI.for.UniversalWindowsPlatform.targets @@ -5,12 +5,4 @@ $(Platform) x86 - - - $(MSBuildThisFileDirectory)..\..\lib\uap10.0\$(PlatformPath)\Telerik.UI.Xaml.Map.UWP.dll - - - $(MSBuildThisFileDirectory)..\..\lib\uap10.0\$(PlatformPath)\Telerik.UI.Drawing.winmd - - \ No newline at end of file diff --git a/Controls/Chart/Chart.UWP/Chart.UWP.csproj b/Controls/Chart/Chart.UWP/Chart.UWP.csproj index c143ae3e9..81fee0322 100644 --- a/Controls/Chart/Chart.UWP/Chart.UWP.csproj +++ b/Controls/Chart/Chart.UWP/Chart.UWP.csproj @@ -523,19 +523,21 @@ - 1.0.0 + 2.14.0 - 1.0.0 + 1.2.3 - 1.0.0 + 1.1.1 - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs b/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs index 0ee554a9f..49c622c0d 100644 --- a/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs +++ b/Controls/Chart/Chart.UWP/Visualization/Behaviors/Trackball/ChartTrackBallBehavior.cs @@ -4,7 +4,6 @@ using System.Linq; using Telerik.Charting; using Telerik.Core; -using Telerik.UI.Xaml.Controls.Chart; using Telerik.UI.Xaml.Controls.Chart.Primitives; using Windows.Devices.Input; using Windows.Foundation; @@ -276,7 +275,7 @@ public static DataTemplate GetTrackInfoTemplate(DependencyObject instance) { if (instance == null) { - throw new ArgumentNullException(nameof(instance)); + return null; } return instance.GetValue(TrackInfoTemplateProperty) as DataTemplate; @@ -303,7 +302,7 @@ public static void SetTrackInfoTemplate(DependencyObject instance, DataTemplate /// internal void HandleDrag(Point currentPosition) { - if (currentPosition.X > this.chart.PlotAreaDecorationSlot.X + if (currentPosition.X > this.chart.PlotAreaDecorationSlot.X && currentPosition.X < (this.chart.PlotAreaDecorationSlot.X + this.chart.PlotAreaDecorationSlot.Width)) { this.position = currentPosition; @@ -561,7 +560,7 @@ private void UpdateVisuals() else { // select points only with the same category. TODO: Refactor this. - points = context.DataPoints.Where(c => + points = context.DataPoints.Where(c => c.DataPoint is CategoricalDataPoint && point.Category.Equals(((CategoricalDataPoint)c.DataPoint).Category)).ToList(); } @@ -569,8 +568,8 @@ c.DataPoint is CategoricalDataPoint && context = new ChartDataContext(points, context.ClosestDataPoint); } } - - if (context.ClosestDataPoint != null + + if (context.ClosestDataPoint != null && context.ClosestDataPoint.DataPoint.LayoutSlot.X > this.chart.PlotAreaClip.X && context.ClosestDataPoint.DataPoint.LayoutSlot.X < (this.chart.PlotAreaClip.X + this.chart.PlotAreaClip.Width)) { @@ -768,6 +767,12 @@ private void BuildIndividualTrackInfos(ChartDataContext context) foreach (DataPointInfo info in infos) { + DataTemplate template = GetTrackInfoTemplate(info.Series); + if (template == null) + { + continue; + } + ContentPresenter presenter; if (this.individualTrackInfos.Count > index) { @@ -782,7 +787,7 @@ private void BuildIndividualTrackInfos(ChartDataContext context) } presenter.Content = info; - presenter.ContentTemplate = GetTrackInfoTemplate(info.Series); + presenter.ContentTemplate = template; index++; } @@ -861,4 +866,4 @@ public int Compare(DataPointInfo x, DataPointInfo y) } } } -} +} \ No newline at end of file diff --git a/Controls/Core.UWP/Core.UWP.csproj b/Controls/Core.UWP/Core.UWP.csproj index 55daa6f8e..49e5a6798 100644 --- a/Controls/Core.UWP/Core.UWP.csproj +++ b/Controls/Core.UWP/Core.UWP.csproj @@ -184,10 +184,12 @@ 5.0.0 - 1.0.0 + 1.0.1 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/Data.UWP/Data.UWP.csproj b/Controls/Data.UWP/Data.UWP.csproj index ee334f0a2..fb721f647 100644 --- a/Controls/Data.UWP/Data.UWP.csproj +++ b/Controls/Data.UWP/Data.UWP.csproj @@ -314,10 +314,12 @@ 5.0.0 - 1.0.0 + 1.0.1 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/DataControls/DataControls.UWP/DataControls.UWP.csproj b/Controls/DataControls/DataControls.UWP/DataControls.UWP.csproj index d549cca9d..42ea237cc 100644 --- a/Controls/DataControls/DataControls.UWP/DataControls.UWP.csproj +++ b/Controls/DataControls/DataControls.UWP/DataControls.UWP.csproj @@ -409,10 +409,12 @@ - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/DataVisualization/DataVisualization.UWP/DataVisualization.UWP.csproj b/Controls/DataVisualization/DataVisualization.UWP/DataVisualization.UWP.csproj index b14e577d0..07c2e901a 100644 --- a/Controls/DataVisualization/DataVisualization.UWP/DataVisualization.UWP.csproj +++ b/Controls/DataVisualization/DataVisualization.UWP/DataVisualization.UWP.csproj @@ -150,19 +150,21 @@ - 1.0.0 + 2.14.0 - 1.0.0 + 1.2.3 - 1.0.0 + 1.1.1 - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/Grid/Grid.UWP/Grid.UWP.csproj b/Controls/Grid/Grid.UWP/Grid.UWP.csproj index 116cfb0f6..3d48f37a9 100644 --- a/Controls/Grid/Grid.UWP/Grid.UWP.csproj +++ b/Controls/Grid/Grid.UWP/Grid.UWP.csproj @@ -472,19 +472,21 @@ - 1.0.0 + 2.14.0 - 1.0.0 + 1.2.3 - 1.0.0 + 1.1.1 - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/Input/Input.UWP/Input.UWP.csproj b/Controls/Input/Input.UWP/Input.UWP.csproj index bc2ee1824..224a4cdc4 100644 --- a/Controls/Input/Input.UWP/Input.UWP.csproj +++ b/Controls/Input/Input.UWP/Input.UWP.csproj @@ -280,10 +280,12 @@ - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all diff --git a/Controls/Primitives/Primitives.UWP/Primitives.UWP.csproj b/Controls/Primitives/Primitives.UWP/Primitives.UWP.csproj index 14d2bf488..d8c9478fc 100644 --- a/Controls/Primitives/Primitives.UWP/Primitives.UWP.csproj +++ b/Controls/Primitives/Primitives.UWP/Primitives.UWP.csproj @@ -425,16 +425,18 @@ - 5.0.0 + 6.2.14 - 4.7.55 + 6.2.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all - 4.1.0 + 4.5.0 - 4.0.0 + 4.3.0 diff --git a/UnitTests/UAP.Tests/Chart.Tests/Chart.Tests.csproj b/UnitTests/UAP.Tests/Chart.Tests/Chart.Tests.csproj index 31d6c8b63..aa62f1520 100644 --- a/UnitTests/UAP.Tests/Chart.Tests/Chart.Tests.csproj +++ b/UnitTests/UAP.Tests/Chart.Tests/Chart.Tests.csproj @@ -172,7 +172,7 @@ - 5.0.0 + 6.2.14 diff --git a/UnitTests/UAP.Tests/DataControls.Tests/DataControls.Tests.csproj b/UnitTests/UAP.Tests/DataControls.Tests/DataControls.Tests.csproj index 62d973403..8ac9bffe5 100644 --- a/UnitTests/UAP.Tests/DataControls.Tests/DataControls.Tests.csproj +++ b/UnitTests/UAP.Tests/DataControls.Tests/DataControls.Tests.csproj @@ -174,7 +174,7 @@ - 5.0.0 + 6.2.14 diff --git a/UnitTests/UAP.Tests/Grid.Tests/Grid.Tests.csproj b/UnitTests/UAP.Tests/Grid.Tests/Grid.Tests.csproj index 6af04b4c7..e518b090e 100644 --- a/UnitTests/UAP.Tests/Grid.Tests/Grid.Tests.csproj +++ b/UnitTests/UAP.Tests/Grid.Tests/Grid.Tests.csproj @@ -230,7 +230,7 @@ - 5.0.0 + 6.2.14 diff --git a/UnitTests/UAP.Tests/Input.Tests/Input.Tests.csproj b/UnitTests/UAP.Tests/Input.Tests/Input.Tests.csproj index d07daf8b3..f6b8564dc 100644 --- a/UnitTests/UAP.Tests/Input.Tests/Input.Tests.csproj +++ b/UnitTests/UAP.Tests/Input.Tests/Input.Tests.csproj @@ -167,7 +167,7 @@ - 5.0.0 + 6.2.14