Browse Source

More integration of new SelectionModel.

pull/4533/head
Steven Kirk 6 years ago
parent
commit
b2a473d286
  1. 3
      src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
  2. 17
      tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

3
src/Avalonia.Controls/Primitives/SelectingItemsControl.cs

@ -2,7 +2,6 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics;
using System.Linq; using System.Linq;
using Avalonia.Controls.Generators; using Avalonia.Controls.Generators;
using Avalonia.Controls.Selection; using Avalonia.Controls.Selection;
@ -183,7 +182,7 @@ namespace Avalonia.Controls.Primitives
_selection = CreateDefaultSelectionModel(); _selection = CreateDefaultSelectionModel();
InitializeSelectionModel(_selection); InitializeSelectionModel(_selection);
} }
return _selection; return _selection;
} }
set set

17
tests/Avalonia.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -781,6 +781,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
target.Items = items; target.Items = items;
((ISupportInitialize)target).EndInit(); ((ISupportInitialize)target).EndInit();
Prepare(target);
Assert.Equal(1, target.SelectedIndex); Assert.Equal(1, target.SelectedIndex);
Assert.Equal("Bar", target.SelectedItem); Assert.Equal("Bar", target.SelectedItem);
} }
@ -796,6 +798,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
target.Items = items; target.Items = items;
((ISupportInitialize)target).EndInit(); ((ISupportInitialize)target).EndInit();
Prepare(target);
Assert.Equal(1, target.SelectedIndex); Assert.Equal(1, target.SelectedIndex);
Assert.Equal("Bar", target.SelectedItem); Assert.Equal("Bar", target.SelectedItem);
} }
@ -1079,7 +1083,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
Assert.Equal("Bar", target.SelectedItem); Assert.Equal("Bar", target.SelectedItem);
} }
[Fact(Skip = "We don't handle this properly yet")] [Fact]
public void Binding_SelectedIndex_Selects_Correct_Item() public void Binding_SelectedIndex_Selects_Correct_Item()
{ {
// Issue #4496 (part 2) // Issue #4496 (part 2)
@ -1099,9 +1103,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
[!ListBox.SelectedIndexProperty] = other[!ListBox.SelectedIndexProperty], [!ListBox.SelectedIndexProperty] = other[!ListBox.SelectedIndexProperty],
}; };
Prepare(other);
Prepare(target); Prepare(target);
other.ApplyTemplate();
other.Presenter.ApplyTemplate();
items.Add("Foo"); items.Add("Foo");
@ -1109,7 +1112,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
Assert.Equal(0, target.SelectedIndex); Assert.Equal(0, target.SelectedIndex);
} }
[Fact(Skip = "We don't handle this properly yet")] [Fact]
public void Binding_SelectedItem_Selects_Correct_Item() public void Binding_SelectedItem_Selects_Correct_Item()
{ {
// Issue #4496 (part 2) // Issue #4496 (part 2)
@ -1160,8 +1163,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
items[1] = "Qux"; items[1] = "Qux";
Assert.Equal(1, target.SelectedIndex); Assert.Equal(-1, target.SelectedIndex);
Assert.Equal("Qux", target.SelectedItem); Assert.Null(target.SelectedItem);
} }
[Fact] [Fact]
@ -1243,6 +1246,8 @@ namespace Avalonia.Controls.UnitTests.Primitives
target.SelectedItem = "Bar"; target.SelectedItem = "Bar";
target.EndInit(); target.EndInit();
Prepare(target);
Assert.Equal("Bar", target.SelectedItem); Assert.Equal("Bar", target.SelectedItem);
Assert.Equal(1, target.SelectedIndex); Assert.Equal(1, target.SelectedIndex);
Assert.Same(selectedItems, target.SelectedItems); Assert.Same(selectedItems, target.SelectedItems);

Loading…
Cancel
Save