Browse Source

Ensure IsSelected set on ApplyTemplate.

pull/58/head
Steven Kirk 12 years ago
parent
commit
fbd33a2163
  1. 6
      Perspex.Controls/Primitives/SelectingItemsControl.cs
  2. 22
      Tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

6
Perspex.Controls/Primitives/SelectingItemsControl.cs

@ -191,6 +191,12 @@ namespace Perspex.Controls.Primitives
e.Handled = true;
}
protected override void OnTemplateApplied()
{
base.OnTemplateApplied();
this.SelectedItemChanged(this.SelectedItem);
}
private static int CoerceSelectedIndex(PerspexObject o, int value)
{
var control = o as SelectingItemsControl;

22
Tests/Perspex.Controls.UnitTests/Primitives/SelectingItemsControlTests.cs

@ -57,6 +57,28 @@ namespace Perspex.Controls.Primitives.UnitTests
Assert.True(items[1].IsSelected);
}
[Fact]
public void Setting_SelectedItem_Before_ApplyTemplate_Should_Set_Item_IsSelected_True()
{
var items = new[]
{
new Item(),
new Item(),
};
var target = new Target
{
Items = items,
Template = this.Template(),
};
target.SelectedItem = items[1];
target.ApplyTemplate();
Assert.False(items[0].IsSelected);
Assert.True(items[1].IsSelected);
}
[Fact]
public void Setting_SelectedItem_Should_Set_SelectedIndex()
{

Loading…
Cancel
Save