diff --git a/src/Markup/Perspex.Markup.Xaml/Context/NameScopeWrapper.cs b/src/Markup/Perspex.Markup.Xaml/Context/NameScopeWrapper.cs
new file mode 100644
index 0000000000..4cb67ce912
--- /dev/null
+++ b/src/Markup/Perspex.Markup.Xaml/Context/NameScopeWrapper.cs
@@ -0,0 +1,30 @@
+// Copyright (c) The Perspex Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+namespace Perspex.Markup.Xaml.Context
+{
+ internal class NameScopeWrapper : OmniXaml.INameScope
+ {
+ private Perspex.INameScope _inner;
+
+ public NameScopeWrapper(Perspex.INameScope inner)
+ {
+ _inner = inner;
+ }
+
+ public object Find(string name)
+ {
+ return _inner.Find(name);
+ }
+
+ public void Register(string name, object scopedElement)
+ {
+ _inner.Register(name, scopedElement);
+ }
+
+ public void Unregister(string name)
+ {
+ _inner.Unregister(name);
+ }
+ }
+}
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs
index 34f0dcca67..c771b30509 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs
@@ -18,6 +18,28 @@ namespace Perspex.Markup.Xaml.Context
{
}
+ public override OmniXaml.INameScope GetNamescope(object instance)
+ {
+ var result = this.UnderlyingType as OmniXaml.INameScope;
+
+ if (result == null)
+ {
+ var visual = instance as Visual;
+
+ if (visual != null)
+ {
+ var perspexNs = (instance as Perspex.INameScope) ?? NameScope.GetNameScope(visual);
+
+ if (perspexNs != null)
+ {
+ result = new NameScopeWrapper(perspexNs);
+ }
+ }
+ }
+
+ return result;
+ }
+
protected override XamlMember LookupMember(string name)
{
return new PerspexXamlMember(name, this, TypeRepository, FeatureProvider);
diff --git a/src/Markup/Perspex.Markup.Xaml/OmniXAML b/src/Markup/Perspex.Markup.Xaml/OmniXAML
index 3582fa46d3..e900876696 160000
--- a/src/Markup/Perspex.Markup.Xaml/OmniXAML
+++ b/src/Markup/Perspex.Markup.Xaml/OmniXAML
@@ -1 +1 @@
-Subproject commit 3582fa46d30fd5f747390c3c7296c4c7c9e5be3e
+Subproject commit e900876696103a752ef6e28ec9d884090ef14f92
diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
index 9ed83085bb..35fde7d0e4 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -38,6 +38,7 @@
Properties\SharedAssemblyInfo.cs
+