Beispiel #1
0
        private void nativeReadableProperty()
        {
            var nativePropertyObject = new NativePropertyClass {
                nativeProperty = 8
            };
            var kokoProperty = new NativeReadableProperty <int>(nativePropertyObject, nameof(NativePropertyClass.nativeProperty));

            Console.WriteLine(kokoProperty.Value); // 8
        }
        public void NonNotifyingPropertyInitialValue()
        {
            int nativeEvents = 0, kokoEvents = 0;
            var myNativeProperty = new MyNonNotifyingNativePropertyClass();

            myNativeProperty.GreetingChanged += delegate { nativeEvents++; };

            myNativeProperty.ChangeGreeting("hello");
            nativeEvents.Should().Be(1);

            var kokoProperty = new NativeReadableProperty <string>(myNativeProperty, nameof(myNativeProperty.Greeting), nameof(myNativeProperty.GreetingChanged));

            kokoProperty.PropertyChanged += delegate { kokoEvents++; };
            kokoProperty.Value.Should().Be("hello");
            kokoEvents.Should().Be(0, "not changed while koko property existed yet");
        }
        public void NativeChange()
        {
            int nativeEvents = 0, kokoEvents = 0;
            var myNativeProperty = new MyReadableNativePropertyClass();

            myNativeProperty.PropertyChanged += delegate { nativeEvents++; };
            myNativeProperty.ChangeGreeting("hello");

            var kokoProperty = new NativeReadableProperty <string>(myNativeProperty, nameof(myNativeProperty.Greeting));

            kokoProperty.PropertyChanged += delegate { kokoEvents++; };

            myNativeProperty.ChangeGreeting("howdy");
            kokoProperty.Value.Should().Be("howdy");
            kokoEvents.Should().Be(1);
            nativeEvents.Should().Be(2);
        }
        public void WindowsFormsPropertyValueChanged()
        {
            int nativeEvents = 0, kokoEvents = 0;

            var toolStripStatusLabel = new ToolStripStatusLabel {
                Text = "ready"
            };

            toolStripStatusLabel.TextChanged += delegate { nativeEvents++; };

            var kokoProperty = new NativeReadableProperty <string>(toolStripStatusLabel, nameof(toolStripStatusLabel.Text), nameof(toolStripStatusLabel.TextChanged));

            kokoProperty.PropertyChanged += delegate { kokoEvents++; };

            toolStripStatusLabel.Text = "howdy";
            kokoProperty.Value.Should().Be("howdy");
            kokoEvents.Should().Be(1);
            nativeEvents.Should().Be(1);
        }