#nullable enable using Avalonia.Controls; using Avalonia.Data; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml; public class AssignBindingTests : XamlTestBase { [Fact] public void AssignBinding_Works_With_Clr_Property() { using var app = UnitTestApplication.Start(TestServices.StyledWindow); var control = (AssignBindingTestControl)AvaloniaRuntimeXamlLoader.Load( """ """); Assert.NotNull(control.ClrBinding); } [Fact] public void AssignBinding_Works_With_AttachedProperty() { using var app = UnitTestApplication.Start(TestServices.StyledWindow); var control = (Control)AvaloniaRuntimeXamlLoader.Load( """ """); var binding = AssignBindingTestControl.GetAttachedBinding(control); Assert.NotNull(binding); } } public sealed class AssignBindingTestControl : Control { [AssignBinding] public IBinding? ClrBinding { get; set; } public static readonly AttachedProperty AttachedBindingProperty = AvaloniaProperty.RegisterAttached("AttachedBinding"); [AssignBinding] public static IBinding? GetAttachedBinding(Control obj) => obj.GetValue(AttachedBindingProperty); public static void SetAttachedBinding(Control obj, IBinding? value) => obj.SetValue(AttachedBindingProperty, value); }