From b6dc913b20bd28b069cb994ec1189647d99aecfd Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Thu, 2 Jun 2016 15:50:51 +0200 Subject: [PATCH] Allow multiple selection in virt test app. --- samples/VirtualizationTest/MainWindow.xaml | 5 ++++- .../ViewModels/MainWindowViewModel.cs | 17 +++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/samples/VirtualizationTest/MainWindow.xaml b/samples/VirtualizationTest/MainWindow.xaml index aa882c052a..94a0fc1b68 100644 --- a/samples/VirtualizationTest/MainWindow.xaml +++ b/samples/VirtualizationTest/MainWindow.xaml @@ -25,7 +25,10 @@ - + diff --git a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs index 953f533065..98f1735849 100644 --- a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs +++ b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using Avalonia.Collections; using ReactiveUI; namespace VirtualizationTest.ViewModels @@ -12,7 +13,6 @@ namespace VirtualizationTest.ViewModels private int _itemCount = 200; private string _newItemString; private IReactiveList _items; - private ItemViewModel _selectedItem; private string _prefix = "Item"; public MainWindowViewModel() @@ -40,11 +40,8 @@ namespace VirtualizationTest.ViewModels set { this.RaiseAndSetIfChanged(ref _itemCount, value); } } - public ItemViewModel SelectedItem - { - get { return _selectedItem; } - set { this.RaiseAndSetIfChanged(ref _selectedItem, value); } - } + public AvaloniaList SelectedItems { get; } + = new AvaloniaList(); public IReactiveList Items { @@ -82,9 +79,9 @@ namespace VirtualizationTest.ViewModels { var index = Items.Count; - if (SelectedItem != null) + if (SelectedItems.Count > 0) { - index = Items.IndexOf(SelectedItem) + 1; + index = Items.IndexOf(SelectedItems[0]) + 1; } Items.Insert(index, new ItemViewModel(index, NewItemString)); @@ -92,9 +89,9 @@ namespace VirtualizationTest.ViewModels private void Remove() { - if (SelectedItem != null) + if (SelectedItems.Count > 0) { - Items.Remove(SelectedItem); + Items.RemoveAll(SelectedItems); } }