public void When_StateTrigger_DataBound_Late() { var SUT = new UserControl(); var mgr = VisualStateManager.GetVisualStateManager(SUT); var group = new VisualStateGroup(); var state = new VisualState(); group.States.Add(state); var trigger = new StateTrigger(); trigger.SetBinding(StateTrigger.IsActiveProperty, new Binding() { Path = "a" }); var groups = new List <VisualStateGroup>(); groups.Add(group); state.StateTriggers.Add(trigger); VisualStateManager.SetVisualStateGroups(SUT, groups); Assert.IsNull(trigger.DataContext); Assert.IsFalse(trigger.IsActive); SUT.DataContext = new { a = true }; Assert.IsNotNull(group.DataContext); Assert.IsNotNull(state.DataContext); Assert.IsNotNull(trigger.DataContext); Assert.IsTrue(trigger.IsActive); }