public void SimpleTest() { var input = new Collection<XamlNode> { x.StartObject<Item>(), x.StartMember<Item>(i => i.Template), x.StartObject<Template>(), x.StartMember<Template>(i => i.Content), x.StartObject<Grid>(), x.EndObject(), x.EndMember(), x.EndObject(), x.EndMember(), x.EndObject(), }; var sut = new TemplateHostingObjectAssembler(new SuperObjectAssembler(WiringContext, new TopDownMemberValueContext())); var assembler = new DummyDeferredLoader(); sut.AddDeferredLoader<Template>(t => t.Content, assembler); foreach (var xamlNode in input) { sut.Process(xamlNode); } var actualNodes = sut.NodeList; var expectedNodes = new Collection<XamlNode> { x.StartObject<Grid>(), x.EndObject(), }; CollectionAssert.AreEqual(expectedNodes, actualNodes); Assert.IsNotNull(((Item) sut.Result).Template.Content); }
public IObjectAssembler CreateAssembler(ObjectAssemblerSettings settings) { var templateHostingObjectAssembler = new TemplateHostingObjectAssembler(new ObjectAssembler(wiringContext, settings)); templateHostingObjectAssembler.AddDeferredLoader<DataTemplate>(template => template.Content, new DummyDeferredLoader()); return templateHostingObjectAssembler; }
public ObjectAssembler(WiringContext wiringContext, ObjectAssemblerSettings objectAssemblerSettings = null) { objectAssembler = new TemplateHostingObjectAssembler(new SuperObjectAssembler(wiringContext, new NewAssembler.TopDownMemberValueContext(), objectAssemblerSettings)); objectAssembler.AddDeferredLoader<DataTemplate>(template => template.AlternateTemplateContent, new DeferredLoader()); }