Browse Source

Move ItemsRepeater to separate assembly.

pull/10112/head
Steven Kirk 3 years ago
parent
commit
0065a962ac
  1. 1
      Avalonia.Desktop.slnf
  2. 13
      Avalonia.sln
  3. 1
      samples/ControlCatalog/ControlCatalog.csproj
  4. 20
      src/Avalonia.Controls.ItemsRepeater/Avalonia.Controls.ItemsRepeater.csproj
  5. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ElementFactory.cs
  6. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/IElementFactory.cs
  7. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ItemTemplateWrapper.cs
  8. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeater.cs
  9. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementClearingEventArgs.cs
  10. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementIndexChangedEventArgs.cs
  11. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementPreparedEventArgs.cs
  12. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/RecyclePool.cs
  13. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/RecyclingElementFactory.cs
  14. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/RepeaterLayoutContext.cs
  15. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/UniqueIdElementPool.cs
  16. 10
      src/Avalonia.Controls.ItemsRepeater/Controls/ViewManager.cs
  17. 10
      src/Avalonia.Controls.ItemsRepeater/Controls/ViewportManager.cs
  18. 0
      src/Avalonia.Controls.ItemsRepeater/Controls/VirtualizationInfo.cs
  19. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/AttachedLayout.cs
  20. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/ElementManager.cs
  21. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/FlowLayoutAlgorithm.cs
  22. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/IFlowLayoutAlgorithmDelegates.cs
  23. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/LayoutContext.cs
  24. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/LayoutContextAdapter.cs
  25. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingLayout.cs
  26. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingLayoutContext.cs
  27. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingStackLayout.cs
  28. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/OrientationBasedMeasures.cs
  29. 5
      src/Avalonia.Controls.ItemsRepeater/Layout/StackLayout.cs
  30. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/StackLayoutState.cs
  31. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/UniformGridLayout.cs
  32. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/UniformGridLayoutState.cs
  33. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/Utils/ListUtils.cs
  34. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/UvBounds.cs
  35. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/UvMeasure.cs
  36. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/VirtualLayoutContextAdapter.cs
  37. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/VirtualizingLayout.cs
  38. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/VirtualizingLayoutContext.cs
  39. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/WrapItem.cs
  40. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/WrapLayout.cs
  41. 0
      src/Avalonia.Controls.ItemsRepeater/Layout/WrapLayoutState.cs
  42. 4
      src/Avalonia.Controls.ItemsRepeater/Properties/AssemblyInfo.cs
  43. 1
      src/Avalonia.Controls/Avalonia.Controls.csproj
  44. 4
      src/Avalonia.Controls/StackPanel.cs
  45. 2
      src/Avalonia.Controls/VirtualizingStackPanel.cs
  46. 3
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDataContextTypeTransformer.cs
  47. 2
      src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs
  48. 22
      tests/Avalonia.Controls.ItemsRepeater.UnitTests/Avalonia.Controls.ItemsRepeater.UnitTests.csproj
  49. 0
      tests/Avalonia.Controls.ItemsRepeater.UnitTests/ItemsRepeaterTests.cs
  50. 0
      tests/Avalonia.Controls.ItemsRepeater.UnitTests/NonVirtualizingStackLayoutTests.cs
  51. 1
      tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
  52. 1
      tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj

1
Avalonia.Desktop.slnf

@ -15,6 +15,7 @@
"src\\Avalonia.Build.Tasks\\Avalonia.Build.Tasks.csproj",
"src\\Avalonia.Controls.ColorPicker\\Avalonia.Controls.ColorPicker.csproj",
"src\\Avalonia.Controls.DataGrid\\Avalonia.Controls.DataGrid.csproj",
"src\\Avalonia.Controls.ItemsRepeater\\Avalonia.Controls.ItemsRepeater.csproj",
"src\\Avalonia.Controls\\Avalonia.Controls.csproj",
"src\\Avalonia.DesignerSupport\\Avalonia.DesignerSupport.csproj",
"src\\Avalonia.Desktop\\Avalonia.Desktop.csproj",

13
Avalonia.sln

@ -233,6 +233,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReactiveUIDemo", "samples\R
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater", "src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj", "{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.ItemsRepeater.UnitTests", "tests\Avalonia.Controls.ItemsRepeater.UnitTests\Avalonia.Controls.ItemsRepeater.UnitTests.csproj", "{F4E36AA8-814E-4704-BC07-291F70F45193}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -548,6 +552,14 @@ Global
{C810060E-3809-4B74-A125-F11533AF9C1B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C810060E-3809-4B74-A125-F11533AF9C1B}.Release|Any CPU.Build.0 = Release|Any CPU
{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EE0F0DD4-A70D-472B-BD5D-B7D32D0E9386}.Release|Any CPU.Build.0 = Release|Any CPU
{F4E36AA8-814E-4704-BC07-291F70F45193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F4E36AA8-814E-4704-BC07-291F70F45193}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F4E36AA8-814E-4704-BC07-291F70F45193}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -613,6 +625,7 @@ Global
{90B08091-9BBD-4362-B712-E9F2CC62B218} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{75C47156-C5D8-44BC-A5A7-E8657C2248D6} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{C810060E-3809-4B74-A125-F11533AF9C1B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{F4E36AA8-814E-4704-BC07-291F70F45193} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}

1
samples/ControlCatalog/ControlCatalog.csproj

@ -26,6 +26,7 @@
<ProjectReference Include="..\..\packages\Avalonia\Avalonia.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.ColorPicker\Avalonia.Controls.ColorPicker.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.DataGrid\Avalonia.Controls.DataGrid.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Themes.Simple\Avalonia.Themes.Simple.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Themes.Fluent\Avalonia.Themes.Fluent.csproj" />
<ProjectReference Include="..\MiniMvvm\MiniMvvm.csproj" />

20
src/Avalonia.Controls.ItemsRepeater/Avalonia.Controls.ItemsRepeater.csproj

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
<PackageId>Avalonia.Controls.ItemsRepeater</PackageId>
<RootNamespace>Avalonia</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\Avalonia.Base\Metadata\NullableAttributes.cs" Link="NullableAttributes.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\Avalonia.Controls\Avalonia.Controls.csproj" />
</ItemGroup>
<Import Project="..\..\build\EmbedXaml.props" />
<Import Project="..\..\build\BuildTargets.targets" />
<!--<Import Project="..\..\build\ApiDiff.props" />-->
<Import Project="..\..\build\NullableEnable.props" />
<Import Project="..\..\build\TrimmingEnable.props" />
<Import Project="..\..\build\DevAnalyzers.props" />
</Project>

0
src/Avalonia.Controls/Repeater/ElementFactory.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ElementFactory.cs

0
src/Avalonia.Controls/Repeater/IElementFactory.cs → src/Avalonia.Controls.ItemsRepeater/Controls/IElementFactory.cs

0
src/Avalonia.Controls/Repeater/ItemTemplateWrapper.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ItemTemplateWrapper.cs

0
src/Avalonia.Controls/Repeater/ItemsRepeater.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeater.cs

0
src/Avalonia.Controls/Repeater/ItemsRepeaterElementClearingEventArgs.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementClearingEventArgs.cs

0
src/Avalonia.Controls/Repeater/ItemsRepeaterElementIndexChangedEventArgs.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementIndexChangedEventArgs.cs

0
src/Avalonia.Controls/Repeater/ItemsRepeaterElementPreparedEventArgs.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ItemsRepeaterElementPreparedEventArgs.cs

0
src/Avalonia.Controls/Repeater/RecyclePool.cs → src/Avalonia.Controls.ItemsRepeater/Controls/RecyclePool.cs

0
src/Avalonia.Controls/Repeater/RecyclingElementFactory.cs → src/Avalonia.Controls.ItemsRepeater/Controls/RecyclingElementFactory.cs

0
src/Avalonia.Controls/Repeater/RepeaterLayoutContext.cs → src/Avalonia.Controls.ItemsRepeater/Controls/RepeaterLayoutContext.cs

0
src/Avalonia.Controls/Repeater/UniqueIdElementPool.cs → src/Avalonia.Controls.ItemsRepeater/Controls/UniqueIdElementPool.cs

10
src/Avalonia.Controls/Repeater/ViewManager.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ViewManager.cs

@ -256,7 +256,7 @@ namespace Avalonia.Controls
public void UpdatePin(Control element, bool addPin)
{
var parent = element.VisualParent;
var parent = element.GetVisualParent();
var child = (Visual)element;
while (parent != null)
@ -283,7 +283,7 @@ namespace Avalonia.Controls
}
child = parent;
parent = child.VisualParent;
parent = child.GetVisualParent();
}
}
@ -656,7 +656,7 @@ namespace Avalonia.Controls
// that handlers can walk up the tree in case they want to find their IndexPath in the
// nested case.
var children = repeater.Children;
if (element.VisualParent != repeater)
if (element.GetVisualParent() != repeater)
{
children.Add(element);
}
@ -701,7 +701,7 @@ namespace Avalonia.Controls
if (FocusManager.Instance?.Current is Visual child)
{
var parent = child.VisualParent;
var parent = child.GetVisualParent();
var owner = _owner;
// Find out if the focused element belongs to one of our direct
@ -722,7 +722,7 @@ namespace Avalonia.Controls
}
child = parent;
parent = child?.VisualParent;
parent = child?.GetVisualParent();
}
}

10
src/Avalonia.Controls/Repeater/ViewportManager.cs → src/Avalonia.Controls.ItemsRepeater/Controls/ViewportManager.cs

@ -67,7 +67,7 @@ namespace Avalonia.Controls
// be a direct child of ours, or even an indirect child. We need to walk up the tree starting
// from anchorElement to figure out what child of ours (if any) to use as the suggested element.
var child = anchorElement;
var parent = child.VisualParent as Control;
var parent = child.GetVisualParent() as Control;
while (parent != null)
{
@ -78,7 +78,7 @@ namespace Avalonia.Controls
}
child = parent;
parent = parent.VisualParent as Control;
parent = parent.GetVisualParent() as Control;
}
}
}
@ -369,11 +369,11 @@ namespace Avalonia.Controls
private Control? GetImmediateChildOfRepeater(Control descendant)
{
var targetChild = descendant;
var parent = (Control?)descendant.VisualParent;
var parent = (Control?)descendant.GetVisualParent();
while (parent != null && parent != _owner)
{
targetChild = parent;
parent = (Control?)parent.VisualParent;
parent = (Control?)parent.GetVisualParent();
}
if (parent == null)
@ -471,7 +471,7 @@ namespace Avalonia.Controls
break;
}
parent = parent.VisualParent;
parent = parent.GetVisualParent();
}
if (!_managingViewportDisabled)

0
src/Avalonia.Controls/Repeater/VirtualizationInfo.cs → src/Avalonia.Controls.ItemsRepeater/Controls/VirtualizationInfo.cs

0
src/Avalonia.Base/Layout/AttachedLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/AttachedLayout.cs

0
src/Avalonia.Base/Layout/ElementManager.cs → src/Avalonia.Controls.ItemsRepeater/Layout/ElementManager.cs

0
src/Avalonia.Base/Layout/FlowLayoutAlgorithm.cs → src/Avalonia.Controls.ItemsRepeater/Layout/FlowLayoutAlgorithm.cs

0
src/Avalonia.Base/Layout/IFlowLayoutAlgorithmDelegates.cs → src/Avalonia.Controls.ItemsRepeater/Layout/IFlowLayoutAlgorithmDelegates.cs

0
src/Avalonia.Base/Layout/LayoutContext.cs → src/Avalonia.Controls.ItemsRepeater/Layout/LayoutContext.cs

0
src/Avalonia.Base/Layout/LayoutContextAdapter.cs → src/Avalonia.Controls.ItemsRepeater/Layout/LayoutContextAdapter.cs

0
src/Avalonia.Base/Layout/NonVirtualizingLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingLayout.cs

0
src/Avalonia.Base/Layout/NonVirtualizingLayoutContext.cs → src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingLayoutContext.cs

0
src/Avalonia.Base/Layout/NonVirtualizingStackLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/NonVirtualizingStackLayout.cs

0
src/Avalonia.Base/Layout/OrientationBasedMeasures.cs → src/Avalonia.Controls.ItemsRepeater/Layout/OrientationBasedMeasures.cs

5
src/Avalonia.Base/Layout/StackLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/StackLayout.cs

@ -5,6 +5,7 @@
using System;
using System.Collections.Specialized;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Logging;
@ -25,13 +26,13 @@ namespace Avalonia.Layout
/// Defines the <see cref="Orientation"/> property.
/// </summary>
public static readonly StyledProperty<Orientation> OrientationProperty =
AvaloniaProperty.Register<StackLayout, Orientation>(nameof(Orientation), Orientation.Vertical);
StackPanel.OrientationProperty.AddOwner<StackPanel>();
/// <summary>
/// Defines the <see cref="Spacing"/> property.
/// </summary>
public static readonly StyledProperty<double> SpacingProperty =
AvaloniaProperty.Register<StackLayout, double>(nameof(Spacing));
StackPanel.SpacingProperty.AddOwner<StackLayout>();
private readonly OrientationBasedMeasures _orientation = new OrientationBasedMeasures();

0
src/Avalonia.Base/Layout/StackLayoutState.cs → src/Avalonia.Controls.ItemsRepeater/Layout/StackLayoutState.cs

0
src/Avalonia.Base/Layout/UniformGridLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/UniformGridLayout.cs

0
src/Avalonia.Base/Layout/UniformGridLayoutState.cs → src/Avalonia.Controls.ItemsRepeater/Layout/UniformGridLayoutState.cs

0
src/Avalonia.Base/Layout/Utils/ListUtils.cs → src/Avalonia.Controls.ItemsRepeater/Layout/Utils/ListUtils.cs

0
src/Avalonia.Base/Layout/WrapLayout/UvBounds.cs → src/Avalonia.Controls.ItemsRepeater/Layout/UvBounds.cs

0
src/Avalonia.Base/Layout/WrapLayout/UvMeasure.cs → src/Avalonia.Controls.ItemsRepeater/Layout/UvMeasure.cs

0
src/Avalonia.Base/Layout/VirtualLayoutContextAdapter.cs → src/Avalonia.Controls.ItemsRepeater/Layout/VirtualLayoutContextAdapter.cs

0
src/Avalonia.Base/Layout/VirtualizingLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/VirtualizingLayout.cs

0
src/Avalonia.Base/Layout/VirtualizingLayoutContext.cs → src/Avalonia.Controls.ItemsRepeater/Layout/VirtualizingLayoutContext.cs

0
src/Avalonia.Base/Layout/WrapLayout/WrapItem.cs → src/Avalonia.Controls.ItemsRepeater/Layout/WrapItem.cs

0
src/Avalonia.Base/Layout/WrapLayout/WrapLayout.cs → src/Avalonia.Controls.ItemsRepeater/Layout/WrapLayout.cs

0
src/Avalonia.Base/Layout/WrapLayout/WrapLayoutState.cs → src/Avalonia.Controls.ItemsRepeater/Layout/WrapLayoutState.cs

4
src/Avalonia.Controls.ItemsRepeater/Properties/AssemblyInfo.cs

@ -0,0 +1,4 @@
using Avalonia.Metadata;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Layout")]

1
src/Avalonia.Controls/Avalonia.Controls.csproj

@ -12,6 +12,7 @@
<Import Project="..\..\build\DevAnalyzers.props" />
<ItemGroup Label="InternalsVisibleTo">
<InternalsVisibleTo Include="Avalonia.Controls.ItemsRepeater, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.Controls.UnitTests, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.DesignerSupport, PublicKey=$(AvaloniaPublicKey)" />
<InternalsVisibleTo Include="Avalonia.LeakTests, PublicKey=$(AvaloniaPublicKey)" />

4
src/Avalonia.Controls/StackPanel.cs

@ -22,13 +22,13 @@ namespace Avalonia.Controls
/// Defines the <see cref="Spacing"/> property.
/// </summary>
public static readonly StyledProperty<double> SpacingProperty =
StackLayout.SpacingProperty.AddOwner<StackPanel>();
AvaloniaProperty.Register<StackPanel, double>(nameof(Spacing));
/// <summary>
/// Defines the <see cref="Orientation"/> property.
/// </summary>
public static readonly StyledProperty<Orientation> OrientationProperty =
StackLayout.OrientationProperty.AddOwner<StackPanel>();
AvaloniaProperty.Register<StackPanel, Orientation>(nameof(Orientation), Orientation.Vertical);
/// <summary>
/// Defines the <see cref="AreHorizontalSnapPointsRegular"/> property.

2
src/Avalonia.Controls/VirtualizingStackPanel.cs

@ -23,7 +23,7 @@ namespace Avalonia.Controls
/// Defines the <see cref="Orientation"/> property.
/// </summary>
public static readonly StyledProperty<Orientation> OrientationProperty =
StackLayout.OrientationProperty.AddOwner<VirtualizingStackPanel>();
StackPanel.OrientationProperty.AddOwner<VirtualizingStackPanel>();
/// <summary>
/// Defines the <see cref="AreHorizontalSnapPointsRegular"/> property.

3
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlDataContextTypeTransformer.cs

@ -79,8 +79,7 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
{
var parentType = parentObject.Type.GetClrType();
if (context.GetAvaloniaTypes().ItemsControl.IsDirectlyAssignableFrom(parentType)
|| context.GetAvaloniaTypes().ItemsRepeater.IsDirectlyAssignableFrom(parentType))
if (context.GetAvaloniaTypes().ItemsControl.IsDirectlyAssignableFrom(parentType))
{
inferredDataContextTypeNode = InferDataContextOfPresentedItem(context, on, parentObject);
}

2
src/Markup/Avalonia.Markup.Xaml.Loader/CompilerExtensions/Transformers/AvaloniaXamlIlWellKnownTypes.cs

@ -55,7 +55,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
public IXamlType DataTemplate { get; }
public IXamlType IDataTemplate { get; }
public IXamlType ItemsControl { get; }
public IXamlType ItemsRepeater { get; }
public IXamlType ReflectionBindingExtension { get; }
public IXamlType RelativeSource { get; }
@ -179,7 +178,6 @@ namespace Avalonia.Markup.Xaml.XamlIl.CompilerExtensions.Transformers
DataTemplate = cfg.TypeSystem.GetType("Avalonia.Markup.Xaml.Templates.DataTemplate");
IDataTemplate = cfg.TypeSystem.GetType("Avalonia.Controls.Templates.IDataTemplate");
ItemsControl = cfg.TypeSystem.GetType("Avalonia.Controls.ItemsControl");
ItemsRepeater = cfg.TypeSystem.GetType("Avalonia.Controls.ItemsRepeater");
ReflectionBindingExtension = cfg.TypeSystem.GetType("Avalonia.Markup.Xaml.MarkupExtensions.ReflectionBindingExtension");
RelativeSource = cfg.TypeSystem.GetType("Avalonia.Data.RelativeSource");
UInt = cfg.TypeSystem.GetType("System.UInt32");

22
tests/Avalonia.Controls.ItemsRepeater.UnitTests/Avalonia.Controls.ItemsRepeater.UnitTests.csproj

@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<OutputType>Library</OutputType>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
<Import Project="..\..\build\UnitTests.NetCore.targets" />
<Import Project="..\..\build\UnitTests.NetFX.props" />
<Import Project="..\..\build\Moq.props" />
<Import Project="..\..\build\XUnit.props" />
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\Microsoft.Reactive.Testing.props" />
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\SharedVersion.props" />
<ItemGroup>
<ProjectReference Include="..\..\src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj" />
<ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" />
</ItemGroup>
<ItemGroup>
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
</ItemGroup>
</Project>

0
tests/Avalonia.Controls.UnitTests/ItemsRepeaterTests.cs → tests/Avalonia.Controls.ItemsRepeater.UnitTests/ItemsRepeaterTests.cs

0
tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs → tests/Avalonia.Controls.ItemsRepeater.UnitTests/NonVirtualizingStackLayoutTests.cs

1
tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj

@ -11,6 +11,7 @@
<ItemGroup>
<ProjectReference Include="..\..\src\Avalonia.Controls.ColorPicker\Avalonia.Controls.ColorPicker.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.DataGrid\Avalonia.Controls.DataGrid.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj" />
<ProjectReference Include="..\..\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj" />
<ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />

1
tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj

@ -17,6 +17,7 @@
<ProjectReference Include="..\..\src\Markup\Avalonia.Markup\Avalonia.Markup.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Controls.ItemsRepeater\Avalonia.Controls.ItemsRepeater.csproj" />
<ProjectReference Include="..\..\src\Avalonia.Themes.Simple\Avalonia.Themes.Simple.csproj" />
<ProjectReference Include="..\Avalonia.UnitTests\Avalonia.UnitTests.csproj" />
</ItemGroup>

Loading…
Cancel
Save