Browse Source

Add default template to the ContentControl, remove theme specific templates (#11365)

* Move ContentPresenter template to the property default value

* Fix some unit tests

* Fix more tests

* Fix more tests

* Update api rules
pull/13531/head
Max Katz 2 years ago
committed by GitHub
parent
commit
60c11167f8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      api/Avalonia.Themes.Fluent.nupkg.xml
  2. 6
      api/Avalonia.Themes.Simple.nupkg.xml
  3. 18
      src/Avalonia.Controls/ContentControl.cs
  4. 20
      src/Avalonia.Themes.Fluent/Controls/ContentControl.xaml
  5. 3
      src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml
  6. 25
      src/Avalonia.Themes.Fluent/Controls/UserControl.xaml
  7. 21
      src/Avalonia.Themes.Simple/Controls/ContentControl.xaml
  8. 3
      src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml
  9. 26
      src/Avalonia.Themes.Simple/Controls/UserControl.xaml
  10. 3
      tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs
  11. 2
      tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
  12. 2
      tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs
  13. 5
      tests/Avalonia.Controls.UnitTests/ListBoxTests.cs
  14. 28
      tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs
  15. 36
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

6
api/Avalonia.Themes.Fluent.nupkg.xml

@ -403,6 +403,12 @@
<Left>baseline/netstandard2.0/Avalonia.Themes.Fluent.dll</Left>
<Right>target/netstandard2.0/Avalonia.Themes.Fluent.dll</Right>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:CompiledAvaloniaXaml.!AvaloniaResources.NamespaceInfo:/Controls/UserControl.xaml</Target>
<Left>baseline/netstandard2.0/Avalonia.Themes.Fluent.dll</Left>
<Right>target/netstandard2.0/Avalonia.Themes.Fluent.dll</Right>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:CompiledAvaloniaXaml.!AvaloniaResources.NamespaceInfo:/Controls/Window.xaml</Target>

6
api/Avalonia.Themes.Simple.nupkg.xml

@ -391,6 +391,12 @@
<Left>baseline/netstandard2.0/Avalonia.Themes.Simple.dll</Left>
<Right>target/netstandard2.0/Avalonia.Themes.Simple.dll</Right>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:CompiledAvaloniaXaml.!AvaloniaResources.NamespaceInfo:/Controls/UserControl.xaml</Target>
<Left>baseline/netstandard2.0/Avalonia.Themes.Simple.dll</Left>
<Right>target/netstandard2.0/Avalonia.Themes.Simple.dll</Right>
</Suppression>
<Suppression>
<DiagnosticId>CP0001</DiagnosticId>
<Target>T:CompiledAvaloniaXaml.!AvaloniaResources.NamespaceInfo:/Controls/Window.xaml</Target>

18
src/Avalonia.Controls/ContentControl.cs

@ -4,6 +4,7 @@ using Avalonia.Controls.Mixins;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Layout;
using Avalonia.LogicalTree;
using Avalonia.Metadata;
@ -40,6 +41,23 @@ namespace Avalonia.Controls
public static readonly StyledProperty<VerticalAlignment> VerticalContentAlignmentProperty =
AvaloniaProperty.Register<ContentControl, VerticalAlignment>(nameof(VerticalContentAlignment));
static ContentControl()
{
TemplateProperty.OverrideDefaultValue<ContentControl>(new FuncControlTemplate((_, ns) => new ContentPresenter
{
Name = "PART_ContentPresenter",
[~BackgroundProperty] = new TemplateBinding(BackgroundProperty),
[~BorderBrushProperty] = new TemplateBinding(BorderBrushProperty),
[~BorderThicknessProperty] = new TemplateBinding(BorderThicknessProperty),
[~CornerRadiusProperty] = new TemplateBinding(CornerRadiusProperty),
[~ContentTemplateProperty] = new TemplateBinding(ContentTemplateProperty),
[~ContentProperty] = new TemplateBinding(ContentProperty),
[~PaddingProperty] = new TemplateBinding(PaddingProperty),
[~VerticalContentAlignmentProperty] = new TemplateBinding(VerticalContentAlignmentProperty),
[~HorizontalContentAlignmentProperty] = new TemplateBinding(HorizontalContentAlignmentProperty)
}.RegisterInNameScope(ns)));
}
/// <summary>
/// Gets or sets the content to display.
/// </summary>

20
src/Avalonia.Themes.Fluent/Controls/ContentControl.xaml

@ -1,20 +0,0 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:ClassModifier="internal">
<ControlTheme x:Key="{x:Type ContentControl}" TargetType="ContentControl">
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>

3
src/Avalonia.Themes.Fluent/Controls/FluentControls.xaml

@ -58,7 +58,6 @@
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/Window.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/ComboBox.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/ComboBoxItem.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/ContentControl.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/ContextMenu.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/DataValidationErrors.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Fluent/Controls/DateTimePickerShared.xaml" />
@ -77,6 +76,4 @@
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Styles.Resources>
<StyleInclude Source="avares://Avalonia.Themes.Fluent/Controls/UserControl.xaml" />
</Styles>

25
src/Avalonia.Themes.Fluent/Controls/UserControl.xaml

@ -1,25 +0,0 @@
<Style xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Selector=":is(UserControl)"
x:ClassModifier="internal">
<Style.Resources>
<ControlTheme x:Key="FluentUserControl" TargetType="UserControl">
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter Name="PART_ContentPresenter"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
Padding="{TemplateBinding Padding}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</ControlTemplate>
</Setter>
</ControlTheme>
</Style.Resources>
<Setter Property="Theme" Value="{StaticResource FluentUserControl}" />
</Style>

21
src/Avalonia.Themes.Simple/Controls/ContentControl.xaml

@ -1,21 +0,0 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:ClassModifier="internal">
<ControlTheme x:Key="{x:Type ContentControl}"
TargetType="ContentControl">
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter Name="PART_ContentPresenter"
Padding="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" />
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>

3
src/Avalonia.Themes.Simple/Controls/SimpleControls.xaml

@ -26,7 +26,6 @@
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/TextBox.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/AutoCompleteBox.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/DataValidationErrors.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/ContentControl.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/FlyoutPresenter.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/MenuFlyoutPresenter.xaml" />
<MergeResourceInclude Source="avares://Avalonia.Themes.Simple/Controls/GridSplitter.xaml" />
@ -75,6 +74,4 @@
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Styles.Resources>
<StyleInclude Source="avares://Avalonia.Themes.Simple/Controls/UserControl.xaml" />
</Styles>

26
src/Avalonia.Themes.Simple/Controls/UserControl.xaml

@ -1,26 +0,0 @@
<Style xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Selector=":is(UserControl)"
x:ClassModifier="internal">
<Style.Resources>
<ControlTheme x:Key="SimpleUserControl"
TargetType="UserControl">
<Setter Property="Template">
<ControlTemplate>
<ContentPresenter Name="PART_ContentPresenter"
Padding="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
CornerRadius="{TemplateBinding CornerRadius}" />
</ControlTemplate>
</Setter>
</ControlTheme>
</Style.Resources>
<Setter Property="Theme" Value="{StaticResource SimpleUserControl}" />
</Style>

3
tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs

@ -430,7 +430,8 @@ namespace Avalonia.Controls.UnitTests
{
new ComboBoxItem()
{
Content = parentContent.Child
Content = parentContent.Child,
Template = null // ugly hack, so we can "attach" same child to the two different trees
}
},
Template = GetTemplate()

2
tests/Avalonia.Controls.UnitTests/ContentControlTests.cs

@ -363,8 +363,6 @@ namespace Avalonia.Controls.UnitTests
root.Child = null;
Assert.Null(target.Template);
target.Content = null;
Assert.Empty(target.LogicalChildren);

2
tests/Avalonia.Controls.UnitTests/ItemsControlTests.cs

@ -717,7 +717,7 @@ namespace Avalonia.Controls.UnitTests
var target = CreateTarget(
dataContext: "Base",
itemsSource: items,
dataTemplates: new[] { dataTemplate });
itemTemplate: dataTemplate);
var panel = Assert.IsAssignableFrom<Panel>(target.ItemsPanelRoot);
var dataContexts = panel.Children
.Do(x => (x as ContentPresenter)?.UpdateChild())

5
tests/Avalonia.Controls.UnitTests/ListBoxTests.cs

@ -181,10 +181,7 @@ namespace Avalonia.Controls.UnitTests
{
Template = ListBoxTemplate(),
DataContext = "Base",
DataTemplates =
{
new FuncDataTemplate<Item>((x, _) => new Button { Content = x })
},
ItemTemplate = new FuncDataTemplate<Item>((x, _) => new Button { Content = x }),
ItemsSource = items,
};

28
tests/Avalonia.Controls.UnitTests/ListBoxTests_Multiple.cs

@ -20,7 +20,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Shift_Selecting_From_No_Selection_Selects_From_Start()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -46,7 +46,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Ctrl_Selecting_Raises_SelectionChanged_Events()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -104,7 +104,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Ctrl_Selecting_SelectedItem_With_Multiple_Selection_Active_Sets_SelectedItem_To_Next_Selection()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -138,7 +138,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Ctrl_Selecting_Non_SelectedItem_With_Multiple_Selection_Active_Leaves_SelectedItem_The_Same()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -169,7 +169,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Should_Ctrl_Select_Correct_Item_When_Duplicate_Items_Are_Present()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -197,7 +197,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Should_Shift_Select_Correct_Item_When_Duplicates_Are_Present()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -225,7 +225,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Can_Shift_Select_All_Items_When_Duplicates_Are_Present()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -253,7 +253,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Shift_Selecting_Raises_SelectionChanged_Events()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -305,7 +305,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Duplicate_Items_Are_Added_To_SelectedItems_In_Order()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -341,7 +341,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Left_Click_On_SelectedItem_Should_Clear_Existing_Selection()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -371,7 +371,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Right_Click_On_SelectedItem_Should_Not_Clear_Existing_Selection()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -399,7 +399,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Right_Click_On_UnselectedItem_Should_Clear_Existing_Selection()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -429,7 +429,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Shift_Right_Click_Should_Not_Select_Multiple()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -456,7 +456,7 @@ namespace Avalonia.Controls.UnitTests
[Fact]
public void Ctrl_Right_Click_Should_Not_Select_Multiple()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{

36
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -175,6 +175,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Setting_SelectedIndex_During_Initialize_Should_Select_Item_When_AlwaysSelected_Is_Used()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var listBox = new ListBox
{
SelectionMode = SelectionMode.Single | SelectionMode.AlwaysSelected
@ -1227,7 +1229,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Setting_SelectedItem_With_Pointer_Should_Set_TabOnceActiveElement()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -1249,7 +1251,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Removing_SelectedItem_Should_Clear_TabOnceActiveElement()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var items = new ObservableCollection<string>(new[] { "Foo", "Bar", "Baz " });
@ -1348,7 +1350,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Should_Select_Correct_Item_When_Duplicate_Items_Are_Present()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -1366,7 +1368,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Should_Apply_Selected_Pseudoclass_To_Correct_Item_When_Duplicate_Items_Are_Present()
{
using (UnitTestApplication.Start())
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
var target = new ListBox
{
@ -1384,6 +1386,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Adding_Item_Before_SelectedItem_Should_Update_SelectedIndex()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1409,6 +1413,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Removing_Item_Before_SelectedItem_Should_Update_SelectedIndex()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1434,6 +1440,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Binding_SelectedIndex_Selects_Correct_Item()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
// Issue #4496 (part 2)
var items = new ObservableCollection<string>();
@ -1463,6 +1471,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Binding_SelectedItem_Selects_Correct_Item()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
// Issue #4496 (part 2)
var items = new ObservableCollection<string>();
@ -1493,6 +1503,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Replacing_Selected_Item_Should_Update_SelectedItem()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1518,6 +1530,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void AutoScrollToSelectedItem_Causes_Scroll_To_SelectedItem()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1543,6 +1557,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void AutoScrollToSelectedItem_Causes_Scroll_To_Initial_SelectedItem()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1607,6 +1623,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void AutoScrollToSelectedItem_Scrolls_When_Reattached_To_Visual_Tree_If_Selection_Changed_While_Detached_From_Visual_Tree()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1639,6 +1657,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void AutoScrollToSelectedItem_Doesnt_Scroll_If_Reattached_To_Visual_Tree_With_No_Selection_Change()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1670,6 +1690,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void AutoScrollToSelectedItem_Causes_Scroll_When_Turned_On()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
var items = new ObservableCollection<string>
{
"Foo",
@ -1700,6 +1722,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Can_Set_Both_SelectedItem_And_SelectedItems_During_Initialization()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
// Issue #2969.
var target = new ListBox();
var selectedItems = new List<object>();
@ -1891,6 +1915,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Does_The_Best_It_Can_With_AutoSelecting_ViewModel()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
// Tests the following scenario:
//
// - Items changes from empty to having 1 item
@ -1932,6 +1958,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[Fact]
public void Preserves_Initial_SelectedItems_When_Bound()
{
using var _ = UnitTestApplication.Start(TestServices.MockPlatformRenderInterface);
// Issue #4272 (there are two issues there, this addresses the second one).
var vm = new SelectionViewModel
{

Loading…
Cancel
Save