From 94f8abbc4db4ee2ea7c1b3b387affbd68363e2c7 Mon Sep 17 00:00:00 2001 From: danwalmsley Date: Tue, 31 May 2016 15:38:15 +0100 Subject: [PATCH] add items at selected index, or at end if no selection. --- samples/VirtualizationTest/MainWindow.xaml | 3 +-- .../ViewModels/MainWindowViewModel.cs | 25 ++++++++----------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/samples/VirtualizationTest/MainWindow.xaml b/samples/VirtualizationTest/MainWindow.xaml index 8595383bdf..aa882c052a 100644 --- a/samples/VirtualizationTest/MainWindow.xaml +++ b/samples/VirtualizationTest/MainWindow.xaml @@ -20,8 +20,7 @@ - - + diff --git a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs index 5b4a51f626..dde3bd357d 100644 --- a/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs +++ b/samples/VirtualizationTest/ViewModels/MainWindowViewModel.cs @@ -21,11 +21,8 @@ namespace VirtualizationTest.ViewModels RecreateCommand = ReactiveCommand.Create(); RecreateCommand.Subscribe(_ => Recreate()); - AppendItemCommand = ReactiveCommand.Create(); - AppendItemCommand.Subscribe(_ => Append()); - - PrePendItemCommand = ReactiveCommand.Create(); - PrePendItemCommand.Subscribe(_ => PrePend()); + AddItemCommand = ReactiveCommand.Create(); + AddItemCommand.Subscribe(_ => AddItem()); RemoveItemCommand = ReactiveCommand.Create(); RemoveItemCommand.Subscribe(_ => Remove()); @@ -55,9 +52,7 @@ namespace VirtualizationTest.ViewModels private set { this.RaiseAndSetIfChanged(ref _items, value); } } - public ReactiveCommand AppendItemCommand { get; private set; } - - public ReactiveCommand PrePendItemCommand { get; private set; } + public ReactiveCommand AddItemCommand { get; private set; } public ReactiveCommand RecreateCommand { get; private set; } @@ -83,14 +78,16 @@ namespace VirtualizationTest.ViewModels } } - private void Append() + private void AddItem() { - Items.Add(new ItemViewModel(Items.Count, NewItemString)); - } + var index = Items.Count; - private void PrePend () - { - Items.Insert(0, new ItemViewModel(0, NewItemString)); + if (SelectedItem != null) + { + index = Items.IndexOf(SelectedItem); + } + + Items.Insert(index, new ItemViewModel(index, NewItemString)); } private void Remove()