diff --git a/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs b/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs index baa1bca76a..d19accb0ad 100644 --- a/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs +++ b/tests/Avalonia.Markup.UnitTests/Data/BindingTests.cs @@ -100,6 +100,28 @@ namespace Avalonia.Markup.UnitTests.Data Assert.Equal("baz", target.Text); } + [Fact] + public void OneWayToSource_Binding_Should_React_To_DataContext_Changed() + { + var target = new TextBlock { Text = "bar" }; + var binding = new Binding + { + Path = "Foo", + Mode = BindingMode.OneWayToSource, + }; + + target.Bind(TextBox.TextProperty, binding); + + var source = new Source { Foo = "foo" }; + target.DataContext = source; + + Assert.Equal("bar", source.Foo); + target.Text = "baz"; + Assert.Equal("baz", source.Foo); + source.Foo = "quz"; + Assert.Equal("baz", target.Text); + } + [Fact] public void Default_BindingMode_Should_Be_Used() { diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs index fef9dfb675..14abebcdb5 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BindingTests.cs @@ -329,6 +329,33 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml Assert.Equal("Hello world", textBlock.Text); } - } + } + + [Fact] + public void Binding_OneWayToSource_Works() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var xaml = @" + +"; + var loader = new AvaloniaXamlLoader(); + var window = (Window)loader.Load(xaml); + var viewModel = new WindowViewModel(); + + window.DataContext = viewModel; + window.ApplyTemplate(); + + Assert.True(window.ShowInTaskbar); + Assert.True(viewModel.ShowInTaskbar); + } + } + + private class WindowViewModel + { + public bool ShowInTaskbar { get; set; } + } } }