|
|
|
@ -7,6 +7,7 @@ using Avalonia.Controls; |
|
|
|
using Avalonia.Controls.Primitives; |
|
|
|
using ReactiveUI; |
|
|
|
using Avalonia.Layout; |
|
|
|
using Avalonia.Controls.Selection; |
|
|
|
|
|
|
|
namespace VirtualizationDemo.ViewModels |
|
|
|
{ |
|
|
|
@ -48,8 +49,7 @@ namespace VirtualizationDemo.ViewModels |
|
|
|
set { this.RaiseAndSetIfChanged(ref _itemCount, value); } |
|
|
|
} |
|
|
|
|
|
|
|
public AvaloniaList<ItemViewModel> SelectedItems { get; } |
|
|
|
= new AvaloniaList<ItemViewModel>(); |
|
|
|
public SelectionModel<ItemViewModel> Selection { get; } = new SelectionModel<ItemViewModel>(); |
|
|
|
|
|
|
|
public AvaloniaList<ItemViewModel> Items |
|
|
|
{ |
|
|
|
@ -138,9 +138,9 @@ namespace VirtualizationDemo.ViewModels |
|
|
|
{ |
|
|
|
var index = Items.Count; |
|
|
|
|
|
|
|
if (SelectedItems.Count > 0) |
|
|
|
if (Selection.SelectedItems.Count > 0) |
|
|
|
{ |
|
|
|
index = Items.IndexOf(SelectedItems[0]); |
|
|
|
index = Selection.SelectedIndex; |
|
|
|
} |
|
|
|
|
|
|
|
Items.Insert(index, new ItemViewModel(_newItemIndex++, NewItemString)); |
|
|
|
@ -148,9 +148,9 @@ namespace VirtualizationDemo.ViewModels |
|
|
|
|
|
|
|
private void Remove() |
|
|
|
{ |
|
|
|
if (SelectedItems.Count > 0) |
|
|
|
if (Selection.SelectedItems.Count > 0) |
|
|
|
{ |
|
|
|
Items.RemoveAll(SelectedItems); |
|
|
|
Items.RemoveAll(Selection.SelectedItems.ToList()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -164,8 +164,7 @@ namespace VirtualizationDemo.ViewModels |
|
|
|
|
|
|
|
private void SelectItem(int index) |
|
|
|
{ |
|
|
|
SelectedItems.Clear(); |
|
|
|
SelectedItems.Add(Items[index]); |
|
|
|
Selection.SelectedIndex = index; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|