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);
if (!(target is IStyledElement))
if (!(target is IDataContextProvider))
{
target = anchor as IStyledElement;
target = anchor as IDataContextProvider;
if (target == null)
{

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

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using Avalonia.Threading;
using Avalonia.Data;
using Avalonia.UnitTests;
using Xunit;
@ -32,5 +31,20 @@ namespace Avalonia.Controls.UnitTests
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