Skip to content

Commit 9289f6c

Browse files
hoazaHaizinger Lukas (BCC.EXTERN)
andauthored
Refactor AutoSuggestionListBox_PreviewMouseDown method (#3791)
Refactored `AutoSuggestionListBox_PreviewMouseDown` in `AutoSuggestBox.cs` for improved readability and efficiency: - Early return if `_autoSuggestBoxList` is `null` or `e.OriginalSource` is not a `FrameworkElement`. - Defined `OnSelectionChanged` inline within its usage context. - Streamlined logic by assigning and checking `selectedItem` immediately after initial checks. - Set `e.Handled` to `true` earlier to mark the event as handled promptly. - Simplified equality check using `Equals` method. - Ensured `CommitValueSelection` is called appropriately for both newly selected and already selected items. Co-authored-by: Haizinger Lukas (BCC.EXTERN) <[email protected]>
1 parent bb264a0 commit 9289f6c

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

src/MaterialDesignThemes.Wpf/AutoSuggestBox.cs

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -192,28 +192,30 @@ protected override void OnTextChanged(TextChangedEventArgs e)
192192

193193
private void AutoSuggestionListBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
194194
{
195-
if (_autoSuggestBoxList is not null && e.OriginalSource is FrameworkElement element)
196-
{
197-
var selectedItem = element.DataContext;
198-
if (!_autoSuggestBoxList.Items.Contains(selectedItem))
199-
return;
200-
if (!_autoSuggestBoxList.SelectedItem.Equals(selectedItem))
201-
{
202-
_autoSuggestBoxList.SelectionChanged += OnSelectionChanged;
203-
_autoSuggestBoxList.SelectedItem = selectedItem;
204-
}
205-
else
206-
{
207-
_autoSuggestBoxList.SelectedItem = selectedItem;
208-
CommitValueSelection();
209-
}
195+
if (_autoSuggestBoxList is null || e.OriginalSource is not FrameworkElement element)
196+
return;
210197

211-
void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
198+
var selectedItem = element.DataContext;
199+
if (!_autoSuggestBoxList.Items.Contains(selectedItem))
200+
return;
201+
202+
e.Handled = true;
203+
204+
if (!Equals(_autoSuggestBoxList.SelectedItem, selectedItem))
205+
{
206+
void OnSelectionChanged(object s, SelectionChangedEventArgs args)
212207
{
213208
_autoSuggestBoxList.SelectionChanged -= OnSelectionChanged;
214209
CommitValueSelection();
215210
}
216-
e.Handled = true;
211+
212+
_autoSuggestBoxList.SelectionChanged += OnSelectionChanged;
213+
_autoSuggestBoxList.SelectedItem = selectedItem;
214+
}
215+
else
216+
{
217+
_autoSuggestBoxList.SelectedItem = selectedItem;
218+
CommitValueSelection();
217219
}
218220
}
219221

0 commit comments

Comments
 (0)