public void ClearDataContextWhenThereIsNoInheritedValueFromParent() { using(var form = new Form()) { var button1 = new Button(); button1.SetDataContext("button3"); form.Controls.Add(button1); button1.ClearDataContext(); Assert.That(button1.GetDataContext(), Is.Null); Assert.That(button1.HasLocalDataContext(), Is.False); Assert.That(form.HasLocalDataContext(), Is.False); } }
public void InheritDataContextFromParent() { using(var form = new Form()) { var button1 = new Button(); var button2 = new Button(); var button3 = new Button(); button3.SetDataContext("button3"); form.Controls.Add(button1); form.SetDataContext("test"); form.Controls.Add(button2); form.Controls.Add(button3); Assert.That(button1.GetDataContext(), Is.EqualTo("test")); Assert.That(button2.GetDataContext(), Is.EqualTo("test")); Assert.That(button3.GetDataContext(), Is.EqualTo("button3")); Assert.That(button1.HasLocalDataContext(), Is.False); Assert.That(button2.HasLocalDataContext(), Is.False); Assert.That(button3.HasLocalDataContext(), Is.True); button1.SetDataContext("button1"); Assert.That(button1.GetDataContext(), Is.EqualTo("button1")); button2.SetDataContext(null); Assert.That(button2.GetDataContext(), Is.Null); Assert.That(button1.HasLocalDataContext(), Is.True); Assert.That(button2.HasLocalDataContext(), Is.True); button3.ClearDataContext(); Assert.That(button3.GetDataContext(), Is.EqualTo("test")); Assert.That(button3.HasLocalDataContext(), Is.False); } }
public void SetAndGetDataContextForControl() { using(var button1 = new Button()) { Assert.That(button1.GetDataContext(), Is.Null); Assert.That(button1.HasLocalDataContext(), Is.False); button1.SetDataContext("test"); Assert.That(button1.GetDataContext(), Is.EqualTo("test")); Assert.That(button1.HasLocalDataContext(), Is.True); button1.ClearDataContext(); Assert.That(button1.GetDataContext(), Is.Null); Assert.That(button1.HasLocalDataContext(), Is.False); } using(var button2 = new Button()) { Assert.That(button2.GetDataContext(), Is.Null); button2.SetDataContext(13); Assert.That(button2.GetDataContext(), Is.EqualTo(13)); } using(var button3 = new Button()) { button3.ClearDataContext(); Assert.That(button3.GetDataContext(), Is.Null); Assert.That(button3.HasLocalDataContext(), Is.False); } }
public void SetSimpleBindingBeforeSetDataContext() { using(var button = new Button()) { button.SetBinding("Text", new Binding()); Assert.That(button.HasLocalDataContext(), Is.False); button.SetDataContext("test"); Assert.That(button.Text, Is.EqualTo("test")); Assert.That(button.HasLocalDataContext(), Is.True); button.SetDataContext("test2"); Assert.That(button.Text, Is.EqualTo("test2")); button.ClearDataContext(); Assert.That(button.Text, Is.EqualTo(string.Empty)); button.SetDataContext("test3"); Assert.That(button.Text, Is.EqualTo("test3")); button.ClearBinding("Text"); button.ClearBinding("Tag"); Assert.That(button.Text, Is.EqualTo(string.Empty)); Assert.That(button.Tag, Is.Null); button.SetDataContext("test4"); Assert.That(button.Text, Is.EqualTo(string.Empty)); } }
public void SetSimpleBindingAfterSetDataContext() { using(var button = new Button()) { button.SetDataContext("test"); button.SetBinding("Text", new Binding()); Assert.That(button.Text, Is.EqualTo("test")); button.SetDataContext("test2"); Assert.That(button.Text, Is.EqualTo("test2")); int textChangedCount = 0; button.TextChanged += (sender, e) => { textChangedCount++; }; button.SetDataContext("test2"); Assert.That(textChangedCount, Is.EqualTo(0)); button.ClearDataContext(); Assert.That(button.Text, Is.EqualTo(string.Empty)); button.SetDataContext("test3"); Assert.That(button.Text, Is.EqualTo("test3")); } }
public void InheritedDataContextBinding_BindAfterAddToTree() { using(var form = new Form()) { var button1 = new Button(); var button2 = new Button(); form.Controls.Add(button1); form.SetDataContext("test"); form.Controls.Add(button2); button1.SetBinding("Text", new Binding()); Assert.That(button1.Text, Is.EqualTo("test")); Assert.That(button1.HasLocalDataContext(), Is.False); button2.SetBinding("Text", new Binding()); Assert.That(button2.Text, Is.EqualTo("test")); Assert.That(button2.HasLocalDataContext(), Is.False); form.SetDataContext("test2"); Assert.That(button1.Text, Is.EqualTo("test2")); Assert.That(button1.HasLocalDataContext(), Is.False); Assert.That(button2.Text, Is.EqualTo("test2")); Assert.That(button2.HasLocalDataContext(), Is.False); button1.SetDataContext("button1"); Assert.That(button1.Text, Is.EqualTo("button1")); Assert.That(button1.HasLocalDataContext(), Is.True); button2.SetDataContext(null); Assert.That(button2.Text, Is.EqualTo(string.Empty)); Assert.That(button2.HasLocalDataContext(), Is.True); button1.ClearDataContext(); Assert.That(button1.Text, Is.EqualTo("test2")); Assert.That(button1.HasLocalDataContext(), Is.False); button2.ClearDataContext(); Assert.That(button2.Text, Is.EqualTo("test2")); Assert.That(button2.HasLocalDataContext(), Is.False); form.ClearDataContext(); Assert.That(button1.Text, Is.EqualTo(string.Empty)); Assert.That(button1.HasLocalDataContext(), Is.False); Assert.That(button2.Text, Is.EqualTo(string.Empty)); Assert.That(button2.HasLocalDataContext(), Is.False); button1.SetDataContext("button1"); Assert.That(button1.Text, Is.EqualTo("button1")); Assert.That(button1.HasLocalDataContext(), Is.True); form.SetDataContext("test"); Assert.That(button1.Text, Is.EqualTo("button1")); Assert.That(button1.HasLocalDataContext(), Is.True); Assert.That(button2.Text, Is.EqualTo("test")); Assert.That(button2.HasLocalDataContext(), Is.False); form.Controls.Clear(); Assert.That(button1.Text, Is.EqualTo("button1")); Assert.That(button2.Text, Is.EqualTo(string.Empty)); } }
public void CollectBindingSourceOnlyAfterClearBinding() { using(var button = new Button()) { WeakReference reference = DoBindButtonAndGetViewModelReference(button); TestUtils.GarbageCollect(); Assert.That(reference.IsAlive, Is.True); Assert.That(button.Text, Is.EqualTo("test")); button.ClearDataContext(); TestUtils.GarbageCollect(); Assert.That(reference.IsAlive, Is.False); Assert.That(button.Text, Is.EqualTo(string.Empty)); } }