public void When_ElementNameSubject_Lazy() { var ens = new ElementNameSubject(true, "test"); var g = new Grid(); Border b1 = null; var stub = new ElementStub { Name = "test", ContentBuilder = () => { b1 = new Border() { Name = "test" }; ens.ElementInstance = b1; return(b1); } }; ens.ElementInstance = stub; g.Children.Add(stub); Assert.IsNull(ens.ElementInstance); var b2 = g.FindName("test"); Assert.IsNotNull(b2); Assert.AreEqual(b1, b2); Assert.AreEqual(b1, g.Children.First()); }
public void When_Source_Complex() { var SUT = new Windows.UI.Xaml.Controls.Grid(); var subject = new ElementNameSubject(); SUT.SetBinding( Windows.UI.Xaml.Controls.Grid.TagProperty, new Binding() { Path = "MyProperty", Source = new { MyProperty = 42 } } ); Assert.AreEqual(42, SUT.Tag); }
public void When_ElementNameSetter() { var g = new Grid(); Grid innerGrid = null; var subject = new ElementNameSubject(false, "test"); var stub = new ElementStub { ContentBuilder = () => { innerGrid = new Grid() { Name = "test" }; subject.ElementInstance = innerGrid; return(innerGrid); } }; subject.ElementInstance = stub; g.Children.Add(stub); var SUT = new Setter(new TargetPropertyPath(subject, "Tag"), 42); var trigger = new StateTrigger() { IsActive = false }; var vs = new VisualState { Setters = { SUT }, StateTriggers = { trigger } }; var group = new VisualStateGroup(); group.States.Add(vs); VisualStateManager.SetVisualStateGroups(g, new List <VisualStateGroup>() { group }); Assert.IsNull(innerGrid); trigger.IsActive = true; Assert.IsNotNull(innerGrid); Assert.AreEqual(42, innerGrid.Tag); }
public void When_Subject_Source() { var SUT = new Windows.UI.Xaml.Controls.Grid(); var subject = new ElementNameSubject(); SUT.SetBinding( Windows.UI.Xaml.Controls.Grid.TagProperty, new Binding() { Source = subject } ); Assert.IsNull(SUT.Tag); subject.ElementInstance = 42; Assert.AreEqual(42, SUT.Tag); }
/// <summary> /// Explicitly sets the target using an ElementNameSubject, in case of lazy /// evaluation of the target element. /// </summary> public static void SetTarget(Timeline timeline, ElementNameSubject target) => timeline.SetElementNameTarget(target);