@@ -47,11 +47,10 @@ protected override void OnApplyTemplate()
4747 protected override void PrepareContainerForItemOverride ( DependencyObject element , object item )
4848 {
4949 base . PrepareContainerForItemOverride ( element , item ) ;
50- var SegmentedItem = element as SegmentedItem ;
51- #pragma warning disable CS8602 // Dereference of a possibly null reference.
52- SegmentedItem . Loaded += SegmentedItem_Loaded ;
53- #pragma warning restore CS8602 // Dereference of a possibly null reference.
54-
50+ if ( element is SegmentedItem segmentedItem )
51+ {
52+ segmentedItem . Loaded += SegmentedItem_Loaded ;
53+ }
5554 }
5655
5756 private void Segmented_PreviewKeyDown ( object sender , KeyRoutedEventArgs e )
@@ -66,10 +65,10 @@ private void Segmented_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
6665 private bool _hasLoaded ;
6766 private void SegmentedItem_Loaded ( object sender , RoutedEventArgs e )
6867 {
69- var SegmentedItem = sender as SegmentedItem ;
70- #pragma warning disable CS8602 // Dereference of a possibly null reference.
71- SegmentedItem . Loaded -= SegmentedItem_Loaded ;
72- #pragma warning restore CS8602 // Dereference of a possibly null reference.
68+ if ( sender is SegmentedItem segmentedItem )
69+ {
70+ segmentedItem . Loaded -= SegmentedItem_Loaded ;
71+ }
7372
7473 //// Only need to do this once.
7574 if ( ! _hasLoaded )
@@ -154,34 +153,28 @@ private bool MoveFocus(MoveDirection direction)
154153 }
155154
156155 // Only do stuff if the index is actually changing
157- if ( index != previousIndex )
156+ if ( index != previousIndex && ContainerFromIndex ( index ) is SegmentedItem newItem )
158157 {
159- var newItem = ContainerFromIndex ( index ) as SegmentedItem ;
160- #pragma warning disable CS8602 // Dereference of a possibly null reference.
161158 newItem . Focus ( FocusState . Keyboard ) ;
162- #pragma warning restore CS8602 // Dereference of a possibly null reference.
163159 retVal = true ;
164160 }
165161 }
166162
167163 return retVal ;
168164 }
169165
170- private SegmentedItem GetCurrentContainerItem ( )
166+ private SegmentedItem ? GetCurrentContainerItem ( )
171167 {
172168 if ( ControlHelpers . IsXamlRootAvailable && XamlRoot != null )
173169 {
174- #pragma warning disable CS8603 // Possible null reference return.
175170 return FocusManager . GetFocusedElement ( XamlRoot ) as SegmentedItem ;
176- #pragma warning restore CS8603 // Possible null reference return.
177171 }
178172 else
179173 {
180- #pragma warning disable CS8603 // Possible null reference return.
181174 return FocusManager . GetFocusedElement ( ) as SegmentedItem ;
182- #pragma warning restore CS8603 // Possible null reference return.
183175 }
184176 }
177+
185178 private void OnSelectionModeChanged ( DependencyObject sender , DependencyProperty dp )
186179 {
187180 SetInitialSelection ( ) ;
0 commit comments