From 3801bc0751cd0d557241a5cac127f000041fc2e9 Mon Sep 17 00:00:00 2001 From: Insomniachi Date: Sat, 20 Jan 2024 18:39:54 +0530 Subject: [PATCH] crash with grid view #81 --- .../UserControls/RatingPicker.xaml.cs | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/Totoro.WinUI/UserControls/RatingPicker.xaml.cs b/Totoro.WinUI/UserControls/RatingPicker.xaml.cs index 4e98e58b..df64d0f3 100644 --- a/Totoro.WinUI/UserControls/RatingPicker.xaml.cs +++ b/Totoro.WinUI/UserControls/RatingPicker.xaml.cs @@ -6,8 +6,8 @@ namespace Totoro.WinUI.UserControls; public sealed partial class RatingPicker : UserControl { - private readonly string[] _ratingNames = new string[] - { + private readonly string[] _ratingNames = + [ "(0) - No Score", "(1) - Appalling", "(2) - Horring", @@ -19,7 +19,7 @@ public sealed partial class RatingPicker : UserControl "(8) - Very Good", "(9) - Great", "(10) - Masterpiece" - }; + ]; public AnimeModel Anime { @@ -77,6 +77,12 @@ public MenuFlyout CreateFlyout(AnimeModel anime) } var score = anime?.Tracking?.Score ?? 0; + if (score > 10) + { + Visibility = Visibility.Collapsed; + return null; + } + var flyout = new MenuFlyout(); for (int i = 0; i < _ratingNames.Length; i++) { @@ -99,8 +105,17 @@ private void StackPanel_Tapped(object sender, Microsoft.UI.Xaml.Input.TappedRout private void StackPanel_Loaded(object sender, RoutedEventArgs e) { - var flyout = (MenuFlyout)FlyoutBase.GetAttachedFlyout(sender as StackPanel); + if(FlyoutBase.GetAttachedFlyout(sender as StackPanel) is not MenuFlyout flyout) + { + return; + } + var score = Anime?.Tracking?.Score ?? 0; + if(score > 10) + { + return; + } + ((RadioMenuFlyoutItem)flyout.Items[score]).IsChecked = true; } }