Skip to content

Commit 4390423

Browse files
committed
Update Segmented.cs
1 parent 11b66de commit 4390423

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

components/SegmentedControl/src/Segmented/Segmented.cs

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)