Browse Source

Don't reset selection if source hasn't changed.

Also remove some `?.` operators that aren't needed.
pull/3469/head
Steven Kirk 6 years ago
parent
commit
4de9fac5c1
  1. 17
      src/Avalonia.Controls/SelectionModel.cs

17
src/Avalonia.Controls/SelectionModel.cs

@ -33,13 +33,16 @@ namespace Avalonia.Controls
public object? Source
{
get => _rootNode?.Source;
get => _rootNode.Source;
set
{
ClearSelection(resetAnchor: true, raiseSelectionChanged: false);
_rootNode.Source = value;
OnSelectionChanged();
RaisePropertyChanged("Source");
if (_rootNode.Source != value)
{
ClearSelection(resetAnchor: true, raiseSelectionChanged: false);
_rootNode.Source = value;
OnSelectionChanged();
RaisePropertyChanged("Source");
}
}
}
@ -76,7 +79,7 @@ namespace Avalonia.Controls
{
IndexPath anchor = default;
if (_rootNode?.AnchorIndex >= 0)
if (_rootNode.AnchorIndex >= 0)
{
var path = new List<int>();
SelectionNode? current = _rootNode;
@ -290,7 +293,7 @@ namespace Avalonia.Controls
public void Dispose()
{
ClearSelection(resetAnchor: false, raiseSelectionChanged: false);
_rootNode?.Dispose();
_rootNode.Dispose();
_selectedIndicesCached = null;
_selectedItemsCached = null;
}

Loading…
Cancel
Save