@ -849,6 +849,28 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
}
}
[Fact]
public void ResolvesElementNameBindingFromLongFormWithoutPath ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var xaml = @ "
< Window xmlns = ' https : //github.com/avaloniaui'
xmlns : x = ' http : //schemas.microsoft.com/winfx/2006/xaml'
xmlns : local = ' clr - namespace : Avalonia . Markup . Xaml . UnitTests . MarkupExtensions ; assembly = Avalonia . Markup . Xaml . UnitTests '
x : DataType = ' local : TestDataContext ' >
< StackPanel >
< TextBlock Text = ' { CompiledBinding StringProperty } ' x : Name = ' text ' / >
< TextBlock Text = ' { CompiledBinding ElementName = text } ' x : Name = ' text2 ' / >
< / StackPanel >
< / Window > ";
var window = ( Window ) AvaloniaRuntimeXamlLoader . Load ( xaml ) ;
var textBlock = window . GetControl < TextBlock > ( "text2" ) ;
Assert . Equal ( "Avalonia.Controls.TextBlock" , textBlock . Text ) ;
}
}
[Fact]
public void ResolvesRelativeSourceBindingLongForm ( )
{
@ -1573,6 +1595,28 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
}
}
[Fact]
public void Binds_To_Self ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var xaml = @ "
< Window xmlns = ' https : //github.com/avaloniaui'
xmlns : x = ' http : //schemas.microsoft.com/winfx/2006/xaml'
xmlns : local = ' clr - namespace : Avalonia . Markup . Xaml . UnitTests . MarkupExtensions ; assembly = Avalonia . Markup . Xaml . UnitTests '
x : DataType = ' local : TestDataContext ' >
< TextBlock Name = ' textBlock ' Text = ' { CompiledBinding $ self } ' / >
< / Window > ";
var window = ( Window ) AvaloniaRuntimeXamlLoader . Load ( xaml ) ;
var textBlock = window . GetControl < TextBlock > ( "textBlock" ) ;
window . ApplyTemplate ( ) ;
window . Presenter ! . ApplyTemplate ( ) ;
Assert . Equal ( "Avalonia.Controls.TextBlock" , textBlock . Text ) ;
}
}
[Fact]
public void Binds_To_Self_Without_DataType ( )
{
@ -1625,6 +1669,28 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
}
}
[Fact]
public void Binds_To_RelativeSource_Self ( )
{
using ( UnitTestApplication . Start ( TestServices . StyledWindow ) )
{
var xaml = @ "
< Window xmlns = ' https : //github.com/avaloniaui'
xmlns : x = ' http : //schemas.microsoft.com/winfx/2006/xaml'
xmlns : local = ' clr - namespace : Avalonia . Markup . Xaml . UnitTests . MarkupExtensions ; assembly = Avalonia . Markup . Xaml . UnitTests '
x : DataType = ' local : TestDataContext ' >
< TextBlock Name = ' textBlock ' Text = ' { CompiledBinding RelativeSource = { RelativeSource Self } } ' / >
< / Window > ";
var window = ( Window ) AvaloniaRuntimeXamlLoader . Load ( xaml ) ;
var textBlock = window . GetControl < TextBlock > ( "textBlock" ) ;
window . ApplyTemplate ( ) ;
window . Presenter ! . ApplyTemplate ( ) ;
Assert . Equal ( "Avalonia.Controls.TextBlock" , textBlock . Text ) ;
}
}
[Fact]
public void SupportsMethodBindingAsDelegate ( )
{