Browse Source

Added repro for #10367 to virtualization demo.

pull/10892/head
Steven Kirk 3 years ago
parent
commit
35d70577f4
  1. 3
      samples/VirtualizationDemo/MainWindow.axaml
  2. 21
      samples/VirtualizationDemo/ViewModels/ExpanderItemViewModel.cs
  3. 17
      samples/VirtualizationDemo/ViewModels/ExpanderPageViewModel.cs
  4. 1
      samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs
  5. 18
      samples/VirtualizationDemo/Views/ExpanderPageView.axaml
  6. 13
      samples/VirtualizationDemo/Views/ExpanderPageView.axaml.cs

3
samples/VirtualizationDemo/MainWindow.axaml

@ -12,5 +12,8 @@
<TabItem Header="Chat" >
<views:ChatPageView DataContext="{Binding Chat}"/>
</TabItem>
<TabItem Header="Expanders">
<views:ExpanderPageView DataContext="{Binding Expanders}"/>
</TabItem>
</controls:HamburgerMenu>
</Window>

21
samples/VirtualizationDemo/ViewModels/ExpanderItemViewModel.cs

@ -0,0 +1,21 @@
using MiniMvvm;
namespace VirtualizationDemo.ViewModels;
public class ExpanderItemViewModel : ViewModelBase
{
private string? _header;
private bool _isExpanded;
public string? Header
{
get => _header;
set => RaiseAndSetIfChanged(ref _header, value);
}
public bool IsExpanded
{
get => _isExpanded;
set => RaiseAndSetIfChanged(ref _isExpanded, value);
}
}

17
samples/VirtualizationDemo/ViewModels/ExpanderPageViewModel.cs

@ -0,0 +1,17 @@
using System.Collections.ObjectModel;
using System.Linq;
namespace VirtualizationDemo.ViewModels;
internal class ExpanderPageViewModel
{
public ExpanderPageViewModel()
{
Items = new(Enumerable.Range(0, 100).Select(x => new ExpanderItemViewModel
{
Header = $"Item {x}",
}));
}
public ObservableCollection<ExpanderItemViewModel> Items { get; set; }
}

1
samples/VirtualizationDemo/ViewModels/MainWindowViewModel.cs

@ -5,4 +5,5 @@ namespace VirtualizationDemo.ViewModels;
internal class MainWindowViewModel : ViewModelBase
{
public ChatPageViewModel Chat { get; } = new();
public ExpanderPageViewModel Expanders { get; } = new();
}

18
samples/VirtualizationDemo/Views/ExpanderPageView.axaml

@ -0,0 +1,18 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="using:VirtualizationDemo.ViewModels"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="VirtualizationDemo.Views.ExpanderPageView"
x:DataType="vm:ExpanderPageViewModel">
<ListBox ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<Expander Header="{Binding Header}" IsExpanded="{Binding IsExpanded}">
<Border Width="200" Height="300"/>
</Expander>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</UserControl>

13
samples/VirtualizationDemo/Views/ExpanderPageView.axaml.cs

@ -0,0 +1,13 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace VirtualizationDemo.Views;
public partial class ExpanderPageView : UserControl
{
public ExpanderPageView()
{
InitializeComponent();
}
}
Loading…
Cancel
Save