diff --git a/.gitmodules b/.gitmodules
index 24ccfc3259..93467688c1 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,3 +5,6 @@
path = src/Perspex.HtmlRenderer/external
url = https://github.com/Perspex/HTML-Renderer.git
branch = perspex-pcl
+[submodule "src/Markup/Perspex.Markup.Xaml/OmniXAML"]
+ path = src/Markup/Perspex.Markup.Xaml/OmniXAML
+ url = https://github.com/SuperJMN/OmniXAML.git
diff --git a/Tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj b/Tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj
index d96439d1fe..b4a1355c00 100644
--- a/Tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj
+++ b/Tests/Perspex.Markup.Xaml.UnitTests/Perspex.Markup.Xaml.UnitTests.csproj
@@ -43,10 +43,6 @@
4
-
- ..\..\packages\Glass.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\Glass.dll
- True
-
..\..\packages\Moq.4.2.1409.1722\lib\net40\Moq.dll
True
@@ -54,9 +50,6 @@
..\..\packages\Octokit.0.14.0\lib\net45\Octokit.dll
-
- ..\..\packages\OmniXaml.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\OmniXaml.dll
-
..\..\packages\Splat.1.6.1\lib\Net45\Splat.dll
True
diff --git a/Tests/Perspex.Markup.Xaml.UnitTests/packages.config b/Tests/Perspex.Markup.Xaml.UnitTests/packages.config
index f79ea1b907..64a2d902f9 100644
--- a/Tests/Perspex.Markup.Xaml.UnitTests/packages.config
+++ b/Tests/Perspex.Markup.Xaml.UnitTests/packages.config
@@ -1,6 +1,5 @@
-
diff --git a/samples/XamlTestApplication/XamlTestApplication.csproj b/samples/XamlTestApplication/XamlTestApplication.csproj
index b4cd19a92e..ece9ca4cfe 100644
--- a/samples/XamlTestApplication/XamlTestApplication.csproj
+++ b/samples/XamlTestApplication/XamlTestApplication.csproj
@@ -36,14 +36,6 @@
4
-
- ..\..\packages\Glass.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\Glass.dll
- True
-
-
- ..\..\packages\OmniXaml.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\OmniXaml.dll
- True
-
..\..\packages\Serilog.1.5.9\lib\net45\Serilog.dll
True
diff --git a/samples/XamlTestApplication/packages.config b/samples/XamlTestApplication/packages.config
index 601727ed56..dea436fde4 100644
--- a/samples/XamlTestApplication/packages.config
+++ b/samples/XamlTestApplication/packages.config
@@ -1,7 +1,5 @@
-
-
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
index fc44abb5b9..b51aae5969 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs
@@ -17,7 +17,7 @@ namespace Perspex.Markup.Xaml.Context
var mapping = new DeferredLoaderMapping();
mapping.Map(template => template.Content, new TemplateLoader());
- var assembler = new ObjectAssembler(wiringContext, new TopDownMemberValueContext(), objectAssemblerSettings);
+ var assembler = new ObjectAssembler(wiringContext, new TopDownValueContext(), objectAssemblerSettings);
_objectAssembler = new TemplateHostingObjectAssembler(assembler, mapping);
}
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs
index 2239c633ee..eda8435549 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs
@@ -43,7 +43,7 @@ namespace Perspex.Markup.Xaml.Context
private IObjectAssembler GetObjectAssemblerForUndefinedRoot()
{
- return new ObjectAssembler(_wiringContext, new TopDownMemberValueContext());
+ return new ObjectAssembler(_wiringContext, new TopDownValueContext());
}
public IXamlParser CreateForReadingSpecificInstance(object rootInstance)
diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs
index d5d864dc47..423ca66e23 100644
--- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs
+++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs
@@ -37,7 +37,7 @@ namespace Perspex.Markup.Xaml.Context
{
var setter = (Setter)instance;
var targetType = setter.Property.PropertyType;
- var valuePipeline = new ValuePipeline(_xamlMember.TypeRepository);
+ var valuePipeline = new ValuePipeline(_xamlMember.TypeRepository, null);
var xamlType = _xamlMember.TypeRepository.GetXamlType(targetType);
base.SetValue(instance, valuePipeline.ConvertValueIfNecessary(value, xamlType));
}
diff --git a/src/Markup/Perspex.Markup.Xaml/OmniXAML b/src/Markup/Perspex.Markup.Xaml/OmniXAML
new file mode 160000
index 0000000000..59318a343c
--- /dev/null
+++ b/src/Markup/Perspex.Markup.Xaml/OmniXAML
@@ -0,0 +1 @@
+Subproject commit 59318a343cdb3e94e5ee33a05b5ffac2771e9640
diff --git a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
index caa0487d15..e02c391c18 100644
--- a/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
+++ b/src/Markup/Perspex.Markup.Xaml/Perspex.Markup.Xaml.csproj
@@ -54,6 +54,169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -78,6 +241,7 @@
+
@@ -119,14 +283,6 @@
-
- ..\..\..\packages\Glass.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\Glass.dll
- True
-
-
- ..\..\..\packages\OmniXaml.0.1.0\lib\portable-net45+win+Xamarin.iOS10+MonoAndroid10+MonoTouch10\OmniXaml.dll
- True
-
..\..\..\packages\Serilog.1.5.9\lib\portable-net45+win+wpa81+wp80+MonoAndroid10+MonoTouch10\Serilog.dll
True
diff --git a/src/Markup/Perspex.Markup.Xaml/packages.config b/src/Markup/Perspex.Markup.Xaml/packages.config
index d39acc6eb8..ae04e0fb0f 100644
--- a/src/Markup/Perspex.Markup.Xaml/packages.config
+++ b/src/Markup/Perspex.Markup.Xaml/packages.config
@@ -1,7 +1,5 @@
-
-