diff --git a/samples/ControlCatalog/Pages/TreeViewPage.xaml b/samples/ControlCatalog/Pages/TreeViewPage.xaml index 2e3fca58cb..6d5cfe142f 100644 --- a/samples/ControlCatalog/Pages/TreeViewPage.xaml +++ b/samples/ControlCatalog/Pages/TreeViewPage.xaml @@ -11,7 +11,7 @@ HorizontalAlignment="Center" Spacing="16"> - + @@ -19,6 +19,11 @@ + + + + + diff --git a/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs b/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs index 7c0855e0af..38d9817b40 100644 --- a/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs +++ b/samples/ControlCatalog/ViewModels/TreeViewPageViewModel.cs @@ -10,6 +10,7 @@ namespace ControlCatalog.ViewModels { private readonly Node _root; private SelectionMode _selectionMode; + private Node _selectedItem; public TreeViewPageViewModel() { @@ -25,6 +26,13 @@ namespace ControlCatalog.ViewModels public ObservableCollection Items { get; } public ObservableCollection SelectedItems { get; } + + public Node SelectedItem + { + get => _selectedItem; + set => this.RaiseAndSetIfChanged(ref _selectedItem, value); + } + public MiniCommand AddItemCommand { get; } public MiniCommand RemoveItemCommand { get; } public MiniCommand SelectRandomItemCommand { get; } @@ -47,12 +55,7 @@ namespace ControlCatalog.ViewModels private void RemoveItem() { - while (SelectedItems.Count > 0) - { - Node lastItem = (Node)SelectedItems[0]; - RecursiveRemove(Items, lastItem); - SelectedItems.RemoveAt(0); - } + SelectedItem?.Parent?.RemoveItem(SelectedItem); bool RecursiveRemove(ObservableCollection items, Node selectedItem) {