Skip to content

Commit 4102016

Browse files
Merge pull request #2 from OpenRakis/copilot/fix-lost-focus-crash
Fix AmbiguousMatchException in DataGrid_LostFocus on Avalonia 12+
2 parents 0be5c33 + a195136 commit 4102016

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

src/Spice86.DataGrid/Avalonia.Controls.DataGrid/Utils/AvaloniaInternalCompatibilityHelper.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,16 @@ public static Visual GetFocusedElement(InputElement inputElement)
2222
return null;
2323
}
2424

25-
MethodInfo getFocusedElementMethod = focusManager.GetType().GetMethod("GetFocusedElement", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
25+
// Use the overload that takes an explicit Type[] of parameters to disambiguate
26+
// between multiple GetFocusedElement overloads exposed by newer Avalonia versions
27+
// (Avalonia 12+ adds a GetFocusedElement(...) overload, which makes the lookup
28+
// by name alone throw AmbiguousMatchException).
29+
MethodInfo getFocusedElementMethod = focusManager.GetType().GetMethod(
30+
"GetFocusedElement",
31+
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic,
32+
binder: null,
33+
types: Type.EmptyTypes,
34+
modifiers: null);
2635
if (getFocusedElementMethod != null)
2736
{
2837
return getFocusedElementMethod.Invoke(focusManager, null) as Visual;

src/Spice86.DataGrid/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
1010
</PropertyGroup>
1111
<PropertyGroup>
12-
<Version>0.1.0</Version>
12+
<Version>0.1.1</Version>
1313
<Authors>Spice86 contributors</Authors>
1414
<Description>Avalonia DataGrid and Semi DataGrid theme packaged for Spice86.</Description>
1515
<PackageProjectUrl>https://github.com/OpenRakis/Spice86.DataGrid</PackageProjectUrl>

0 commit comments

Comments
 (0)