diff --git a/src/Controls/src/SourceGen/KnownMarkups.cs b/src/Controls/src/SourceGen/KnownMarkups.cs
index 327fa74788d4..de1d574b4fb2 100644
--- a/src/Controls/src/SourceGen/KnownMarkups.cs
+++ b/src/Controls/src/SourceGen/KnownMarkups.cs
@@ -480,7 +480,10 @@ internal static bool ProvideValueForReferenceExtension(ElementNode markupNode, S
value = $"{namescope.namesInScope[name!].Name}";
return true;
}
- node = node.Parent as ElementNode;
+ INode n = node;
+ while (n.Parent is ListNode ln)
+ n = ln.Parent;
+ node = n.Parent as ElementNode;
}
//TODO report diagnostic
diff --git a/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml b/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml
new file mode 100644
index 000000000000..94c304d1ad13
--- /dev/null
+++ b/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml.cs b/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml.cs
new file mode 100644
index 000000000000..28934dec02bb
--- /dev/null
+++ b/src/Controls/tests/Xaml.UnitTests/Issues/Maui31995.xaml.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+namespace Microsoft.Maui.Controls.Xaml.UnitTests.Issues;
+#nullable enable
+
+public partial class Maui31995 : ContentPage
+{
+ public Maui31995() => InitializeComponent();
+
+ int count = 0;
+ public List