A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

35 lines
1.2 KiB

namespace Perspex.Xaml.Context
{
using System;
using OmniXaml;
using OmniXaml.ObjectAssembler;
using Templates;
public class PerspexObjectAssembler : IObjectAssembler
{
private readonly TemplateHostingObjectAssembler objectAssembler;
public PerspexObjectAssembler(IWiringContext wiringContext, ObjectAssemblerSettings objectAssemblerSettings = null)
{
var mapping = new DeferredLoaderMapping();
mapping.Map<XamlDataTemplate>(template => template.Content, new TemplateLoader());
var assembler = new ObjectAssembler(wiringContext, new TopDownMemberValueContext(), objectAssemblerSettings);
objectAssembler = new TemplateHostingObjectAssembler(assembler, mapping);
}
public object Result => objectAssembler.Result;
public EventHandler<XamlSetValueEventArgs> XamlSetValueHandler { get; set; }
public IWiringContext WiringContext => objectAssembler.WiringContext;
public void Process(XamlInstruction node)
{
objectAssembler.Process(node);
}
public void OverrideInstance(object instance)
{
objectAssembler.OverrideInstance(instance);
}
}
}