using System.Collections.Generic; using Avalonia.Controls; using Avalonia.Controls.Primitives; using Avalonia.UnitTests; using Xunit; namespace Avalonia.Markup.Xaml.UnitTests.Xaml { public class ControlBindingTests : XamlTestBase { [Fact] public void Binding_ProgressBar_Value_To_Invalid_Value_Uses_FallbackValue() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { var xaml = @" "; var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); var progressBar = (ProgressBar)window.Content; window.DataContext = new { Value = "foo" }; window.ApplyTemplate(); Assert.Equal(3, progressBar.Value); } } [Fact] public void Can_Bind_Between_TabStrip_And_Carousel() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { var xaml = @" "; var window = (Window)AvaloniaRuntimeXamlLoader.Load(xaml); var strip = window.FindControl("strip"); var carousel = window.FindControl("carousel"); window.DataContext = new ItemsViewModel { Items = new[] { new ItemViewModel { Header = "Item1", Detail = "Detail1" }, new ItemViewModel { Header = "Item2", Detail = "Detail2" }, } }; window.Show(); Assert.Equal(0, strip.SelectedIndex); Assert.Equal(0, carousel.SelectedIndex); } } private class ItemsViewModel { public IList Items { get; set; } } private class ItemViewModel { public string Header { get; set; } public string Detail { get; set; } } } }