public void ClearValueOnBoundProperty2() { using(var button = new Button()) { button.SetBinding(TestPropertyContainer.DefaultValueProperty, new Binding()); button.ClearValue(TestPropertyContainer.DefaultValueProperty); Assert.That(button.GetValue(TestPropertyContainer.DefaultValueProperty), Is.EqualTo("d")); } }
public void DefaultValue() { using(var button = new Button()) { Assert.That(TestPropertyContainer.DefaultValueChangedFireCount, Is.EqualTo(0)); Assert.That(button.GetValue(TestPropertyContainer.DefaultValueProperty), Is.EqualTo("d")); button.SetValue(TestPropertyContainer.DefaultValueProperty, "button"); Assert.That(TestPropertyContainer.DefaultValueChangedFireCount, Is.EqualTo(1)); Assert.That(TestPropertyContainer.DefaultValueChangedSender, Is.EqualTo(button)); Assert.That(TestPropertyContainer.DefaultValueChangedArgs.OldValue, Is.EqualTo("d")); Assert.That(TestPropertyContainer.DefaultValueChangedArgs.NewValue, Is.EqualTo("button")); Assert.That(button.GetValue(TestPropertyContainer.DefaultValueProperty), Is.EqualTo("button")); button.ClearValue(TestPropertyContainer.DefaultValueProperty); Assert.That(TestPropertyContainer.DefaultValueChangedFireCount, Is.EqualTo(2)); Assert.That(button.GetValue(TestPropertyContainer.DefaultValueProperty), Is.EqualTo("d")); Assert.That(TestPropertyContainer.DefaultValueChangedArgs.NewValue, Is.EqualTo("d")); Assert.That(TestPropertyContainer.DefaultValueChangedArgs.OldValue, Is.EqualTo("button")); } }
public void BindAttachedProperty2() { var viewModel = new TestViewModel(); using(var button = new Button()) { button.SetValue(TextProperty, "button1"); button.SetDataContext(viewModel); button.SetBinding(() => new Button().Text, new Binding(() => new TestViewModel().StringProperty2)); button.SetBinding(TextProperty, new Binding(() => new TestViewModel().StringProperty)); Assert.That(button.GetValue(TextProperty), Is.EqualTo(null)); Assert.That(button.Text, Is.EqualTo(string.Empty)); viewModel.StringProperty = "test"; Assert.That(button.GetValue(TextProperty), Is.EqualTo("test")); Assert.That(button.Text, Is.EqualTo(string.Empty)); viewModel.StringProperty2 = "test2"; Assert.That(button.GetValue(TextProperty), Is.EqualTo("test")); Assert.That(button.Text, Is.EqualTo("test2")); button.ClearBinding(TextProperty); Assert.That(button.GetValue(TextProperty), Is.Null); } }
static WeakReference GetHandlerRef(Button button) { return new WeakReference(button.GetValue(CommandProvider.HandlerProperty)); }
public void RegisterInheritableAndNoInheritablPropertiesProperty() { using(var form = new Form()) { var button1 = new Button(); var button2 = new Button(); form.Controls.Add(button1); form.Controls.Add(button2); Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.Null); Assert.That(button2.GetValue(TestPropertyContainer.TestProperty), Is.Null); Assert.That(form.GetValue(TestPropertyContainer.TestProperty), Is.Null); button1.SetValue(TestPropertyContainer.TestProperty, "button1"); button1.SetValue(TestPropertyContainer.Test2Property, "button1_"); Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("button1")); Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_")); form.SetValue(TestPropertyContainer.TestProperty, "form"); form.SetValue(TestPropertyContainer.Test2Property, "form2"); Assert.That(form.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form")); Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("button1")); Assert.That(button2.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form")); Assert.That(form.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("form2")); Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_")); Assert.That(button2.GetValue(TestPropertyContainer.Test2Property), Is.Null); Assert.That(button2.HasLocalValue(TestPropertyContainer.TestProperty), Is.False); Assert.That(button1.HasLocalValue(TestPropertyContainer.TestProperty), Is.True); button1.ClearValue(TestPropertyContainer.TestProperty); Assert.That(button1.GetValue(TestPropertyContainer.TestProperty), Is.EqualTo("form")); Assert.That(button1.HasLocalValue(TestPropertyContainer.TestProperty), Is.False); button1.ClearValue(TestPropertyContainer.Test2Property); Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.Null); Assert.That(button1.HasLocalValue(TestPropertyContainer.Test2Property), Is.False); button1.SetValue(TestPropertyContainer.Test2Property, "button1_"); form.ClearValue(TestPropertyContainer.Test2Property); Assert.That(button1.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button1_")); form.SetValue(TestPropertyContainer.Test2Property, "form2"); var button3 = new Button(); form.Controls.Add(button3); Assert.That(button3.GetValue(TestPropertyContainer.Test2Property), Is.Null); button3.SetValue(TestPropertyContainer.Test2Property, "button3_"); form.Controls.Remove(button3); Assert.That(button3.GetValue(TestPropertyContainer.Test2Property), Is.EqualTo("button3_")); } }
public void SetClearBindings() { using(var form = new Form()) { var button = new Button(); form.Controls.Add(button); var viewModel = new TestViewModel() { StringProperty = "test", StringProperty2 = "test2" }; form.SetDataContext(viewModel); BindingManager manager = new BindingManager(); manager.SetBinding(form, "Text", new Binding("StringProperty")); Assert.That(form.Text, Is.EqualTo("test")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(1)); Assert.That(manager.GetValueActions().Count(), Is.EqualTo(0)); SetBindingAction action = manager.GetBindingActions().First(); Assert.That(action.Control, Is.EqualTo(form)); Assert.That(action.Property.Name, Is.EqualTo("Text")); Assert.That(action.Property, Is.InstanceOf<StandardPropertyDescriptor>()); Assert.That(((Binding)action.Binding).Path, Is.EqualTo("StringProperty")); manager.SetBinding(button, "Text", new Binding("StringProperty2")); Assert.That(button.Text, Is.EqualTo("test2")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(2)); action = manager.GetBindingActions().ElementAt(1); Assert.That(action.Control, Is.EqualTo(button)); Assert.That(action.Property.Name, Is.EqualTo("Text")); manager.SetBinding(form, "Text", new Binding("StringProperty2")); Assert.That(form.Text, Is.EqualTo("test2")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(2)); action = manager.GetBindingActions().First(); Assert.That(action.Control, Is.EqualTo(form)); Assert.That(action.Property.Name, Is.EqualTo("Text")); Assert.That(((Binding)action.Binding).Path, Is.EqualTo("StringProperty2")); manager.ClearBinding(form, "Text"); Assert.That(form.Text, Is.EqualTo(string.Empty)); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(1)); action = manager.GetBindingActions().First(); Assert.That(action.Control, Is.EqualTo(button)); Assert.That(action.Property.Name, Is.EqualTo("Text")); manager.SetBinding(form, "Text", new Binding("StringProperty")); manager.SetBinding(form, "Tag", new Binding("StringProperty")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(3)); manager.ClearAllBindings(form); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(1)); action = manager.GetBindingActions().First(); Assert.That(action.Control, Is.EqualTo(button)); Assert.That(action.Property.Name, Is.EqualTo("Text")); manager.SetBinding(form, TextProperty, new Binding("StringProperty")); Assert.That(form.GetValue(TextProperty), Is.EqualTo("test")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(2)); action = manager.GetBindingActions().ElementAt(1); Assert.That(action.Control, Is.EqualTo(form)); Assert.That(action.Property.Name, Is.EqualTo("Text")); Assert.That(action.Property, Is.InstanceOf<AttachedPropertyDescriptor>()); Assert.That(((Binding)action.Binding).Path, Is.EqualTo("StringProperty")); manager.ClearBinding(form, TextProperty); Assert.That(form.GetValue(TextProperty), Is.EqualTo(null)); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(1)); Assert.That(manager.GetBindingActions().First().Property, Is.InstanceOf<StandardPropertyDescriptor>()); manager.SetBinding(button, TextProperty, new Binding("StringProperty2")); Assert.That(button.GetValue(TextProperty), Is.EqualTo("test2")); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(2)); manager.ClearAllBindings(button); Assert.That(manager.GetBindingActions().Count(), Is.EqualTo(0)); } }