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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
18 additions and
4 deletions
-
src/Markup/Avalonia.Markup/Data/BindingBase.cs
-
tests/Avalonia.Controls.UnitTests/ApplicationTests.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) |
|
|
{ |
|
|
{ |
|
|
|
|
|
@ -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); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|