コード例 #1
0
 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"));
     }
 }
コード例 #2
0
        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"));
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 static WeakReference GetHandlerRef(Button button)
 {
     return new WeakReference(button.GetValue(CommandProvider.HandlerProperty));
 }
コード例 #5
0
        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_"));
            }
        }
コード例 #6
0
        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));
            }
        }