From 05b580317c5a71e850b620186bcf255d753ed803 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 11 Sep 2019 10:58:41 +0100 Subject: [PATCH 1/4] fix crash scrolling to view when clearing list. --- src/Avalonia.Controls/Primitives/SelectingItemsControl.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs index 340947d2e1..8659e6e3e5 100644 --- a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs +++ b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs @@ -1042,7 +1042,7 @@ namespace Avalonia.Controls.Primitives RaiseEvent(e); } - if (AutoScrollToSelectedItem) + if (AutoScrollToSelectedItem && _selectedItem != null) { ScrollIntoView(_selectedItem); } From 79ecf98a46850d4378214cd205af29d195ebc416 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 11 Sep 2019 13:50:08 +0100 Subject: [PATCH 2/4] add null check to itemvirtualizer simple --- .../Presenters/ItemVirtualizerSimple.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs index b8b8094582..0fcd32ba23 100644 --- a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs +++ b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs @@ -295,11 +295,14 @@ namespace Avalonia.Controls.Presenters /// public override void ScrollIntoView(object item) { - var index = Items.IndexOf(item); - - if (index != -1) + if(Items != null) { - ScrollIntoView(index); + var index = Items.IndexOf(item); + + if (index != -1) + { + ScrollIntoView(index); + } } } From 27e1b9d0f5437d109c090a9df5a4f0e4c00c7af1 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 11 Sep 2019 13:50:26 +0100 Subject: [PATCH 3/4] check selectedindex instead of _selectedItem --- src/Avalonia.Controls/Primitives/SelectingItemsControl.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs index 8659e6e3e5..d3aad42888 100644 --- a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs +++ b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs @@ -1042,7 +1042,7 @@ namespace Avalonia.Controls.Primitives RaiseEvent(e); } - if (AutoScrollToSelectedItem && _selectedItem != null) + if (AutoScrollToSelectedItem && _selectedIndex != -1) { ScrollIntoView(_selectedItem); } From 4762b8ec3392d1a4276d26278538748b2ea3f367 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 11 Sep 2019 13:58:32 +0100 Subject: [PATCH 4/4] fix whitespace. --- src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs index 0fcd32ba23..cd14211075 100644 --- a/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs +++ b/src/Avalonia.Controls/Presenters/ItemVirtualizerSimple.cs @@ -295,7 +295,7 @@ namespace Avalonia.Controls.Presenters /// public override void ScrollIntoView(object item) { - if(Items != null) + if (Items != null) { var index = Items.IndexOf(item);