public void Clearing_Items_Should_Clear_Selection() { var items = new PerspexList<Item> { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedIndex = 1; Assert.Equal(items[1], target.SelectedItem); Assert.Equal(1, target.SelectedIndex); target.Items = null; Assert.Equal(null, target.SelectedItem); Assert.Equal(-1, target.SelectedIndex); }
public void Item_IsSelected_Should_Initially_Be_False() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); Assert.False(items[0].IsSelected); Assert.False(items[1].IsSelected); }
public void Raising_IsSelectedChanged_On_Item_Should_Update_Selection() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = items[1]; Assert.False(items[0].IsSelected); Assert.True(items[1].IsSelected); items[0].IsSelected = true; items[0].RaiseEvent(new RoutedEventArgs(SelectingItemsControl.IsSelectedChangedEvent)); Assert.Equal(target.SelectedIndex, 0); Assert.Equal(target.SelectedItem, items[0]); Assert.True(items[0].IsSelected); Assert.False(items[1].IsSelected); }
public void Setting_SelectedItem_With_No_Items_Should_Not_Throw_Exception() { var target = new Target { Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = new Item(); }
public void Setting_SelectedItem_To_Not_Present_Item_Should_Clear_Selection() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = items[1]; Assert.Equal(items[1], target.SelectedItem); Assert.Equal(1, target.SelectedIndex); target.SelectedItem = new Item(); Assert.Equal(null, target.SelectedItem); Assert.Equal(-1, target.SelectedIndex); }
public void Setting_SelectedItem_Should_Set_SelectedIndex() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = items[1]; Assert.Equal(items[1], target.SelectedItem); Assert.Equal(1, target.SelectedIndex); }
public void Setting_SelectedItem_Should_Set_Item_IsSelected_True() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = items[1]; Assert.False(items[0].IsSelected); Assert.True(items[1].IsSelected); }
public void Setting_SelectedIndex_With_No_Items_Should_Not_Throw_Exception() { var target = new Target { Template = this.Template(), }; target.ApplyTemplate(); target.SelectedIndex = 2; Assert.Equal(-1, target.SelectedIndex); }
public void Setting_SelectedIndex_Should_Coerce() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedIndex = 2; Assert.Equal(1, target.SelectedIndex); }
public void Raising_IsSelectedChanged_On_Someone_Elses_Item_Should_Not_Update_Selection() { var items = new[] { new Item(), new Item(), }; var target = new Target { Items = items, Template = this.Template(), }; target.ApplyTemplate(); target.SelectedItem = items[1]; var notChild = new Item { IsSelected = true, }; target.RaiseEvent(new RoutedEventArgs { RoutedEvent = SelectingItemsControl.IsSelectedChangedEvent, Source = notChild, OriginalSource = notChild, }); Assert.Equal(target.SelectedItem, items[1]); }