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); }