Browse Source

Merge pull request #4290 from AvaloniaUI/fixes/unable-to-bind-where-application-provides-datacontext

Fixes/unable to bind where application provides datacontext
pull/4300/head
danwalmsley 6 years ago
committed by GitHub
parent
commit
d2cc57a6bd
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/Markup/Avalonia.Markup/Data/BindingBase.cs
  2. 18
      tests/Avalonia.Controls.UnitTests/ApplicationTests.cs

4
src/Markup/Avalonia.Markup/Data/BindingBase.cs

@ -137,9 +137,9 @@ namespace Avalonia.Data
{ {
Contract.Requires<ArgumentNullException>(target != null); Contract.Requires<ArgumentNullException>(target != null);
if (!(target is IStyledElement)) if (!(target is IDataContextProvider))
{ {
target = anchor as IStyledElement; target = anchor as IDataContextProvider;
if (target == null) if (target == null)
{ {

18
tests/Avalonia.Controls.UnitTests/ApplicationTests.cs

@ -1,6 +1,5 @@
using System; using System;
using System.Collections.Generic; using Avalonia.Data;
using Avalonia.Threading;
using Avalonia.UnitTests; using Avalonia.UnitTests;
using Xunit; using Xunit;
@ -32,5 +31,20 @@ namespace Avalonia.Controls.UnitTests
Assert.True(raised); Assert.True(raised);
} }
} }
[Fact]
public void Can_Bind_To_DataContext()
{
using (UnitTestApplication.Start())
{
var application = Application.Current;
application.DataContext = "Test";
application.Bind(Application.NameProperty, new Binding("."));
Assert.Equal("Test", Application.Current.Name);
}
}
} }
} }

Loading…
Cancel
Save