Skip to content

Commit 13c8716

Browse files
committed
feat: ComboBox.OnDropDownOpened/Closed
1 parent 2edcbd1 commit 13c8716

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/Uno.UI/Generated/3.0.0.0/Windows.UI.Xaml.Controls/ComboBox.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,14 +242,14 @@ public object Description
242242
// Forced skipping of method Windows.UI.Xaml.Controls.ComboBox.Description.set
243243
// Forced skipping of method Windows.UI.Xaml.Controls.ComboBox.TextSubmitted.add
244244
// Forced skipping of method Windows.UI.Xaml.Controls.ComboBox.TextSubmitted.remove
245-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
245+
#if false
246246
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
247247
protected virtual void OnDropDownClosed( object e)
248248
{
249249
global::Windows.Foundation.Metadata.ApiInformation.TryRaiseNotImplemented("Windows.UI.Xaml.Controls.ComboBox", "void ComboBox.OnDropDownClosed(object e)");
250250
}
251251
#endif
252-
#if __ANDROID__ || __IOS__ || NET461 || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__
252+
#if false
253253
[global::Uno.NotImplemented("__ANDROID__", "__IOS__", "NET461", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")]
254254
protected virtual void OnDropDownOpened( object e)
255255
{

src/Uno.UI/UI/Xaml/Controls/ComboBox/ComboBox.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,16 @@ private protected override void OnUnloaded()
165165
Xaml.Window.Current.SizeChanged -= OnWindowSizeChanged;
166166
}
167167

168+
protected virtual void OnDropDownClosed(object e)
169+
{
170+
DropDownClosed?.Invoke(this, null!);
171+
}
172+
173+
protected virtual void OnDropDownOpened(object e)
174+
{
175+
DropDownOpened?.Invoke(this, null!);
176+
}
177+
168178
private void OnWindowSizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
169179
{
170180
IsDropDownOpen = false;
@@ -370,9 +380,10 @@ partial void OnIsDropDownOpenChangedPartial(bool oldIsDropDownOpen, bool newIsDr
370380
_popup.IsOpen = newIsDropDownOpen;
371381
}
372382

383+
var args = new RoutedEventArgs() { OriginalSource = this };
373384
if (newIsDropDownOpen)
374385
{
375-
DropDownOpened?.Invoke(this, newIsDropDownOpen);
386+
OnDropDownOpened(args);
376387

377388
RestoreSelectedItem();
378389

@@ -383,8 +394,11 @@ partial void OnIsDropDownOpenChangedPartial(bool oldIsDropDownOpen, bool newIsDr
383394
}
384395
else
385396
{
386-
DropDownClosed?.Invoke(this, newIsDropDownOpen);
397+
OnDropDownClosed(args);
387398
UpdateContentPresenter();
399+
400+
// Focus moves to ComboBox after item is selected.
401+
Focus(FocusState.Programmatic);
388402
}
389403

390404
UpdateDropDownState();

0 commit comments

Comments
 (0)