|
|
@ -749,6 +749,40 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
Assert.Equal("b", target.SelectedItem); |
|
|
Assert.Equal("b", target.SelectedItem); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void Mode_For_SelectedIndex_Is_TwoWay_By_Default() |
|
|
|
|
|
{ |
|
|
|
|
|
var items = new[] |
|
|
|
|
|
{ |
|
|
|
|
|
new Item(), |
|
|
|
|
|
new Item(), |
|
|
|
|
|
new Item(), |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var vm = new MasterViewModel |
|
|
|
|
|
{ |
|
|
|
|
|
Child = new ChildViewModel |
|
|
|
|
|
{ |
|
|
|
|
|
Items = items, |
|
|
|
|
|
SelectedIndex = 1, |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
var target = new SelectingItemsControl { DataContext = vm }; |
|
|
|
|
|
var itemsBinding = new Binding("Child.Items"); |
|
|
|
|
|
var selectedIndBinding = new Binding("Child.SelectedIndex"); |
|
|
|
|
|
|
|
|
|
|
|
target.Bind(SelectingItemsControl.ItemsProperty, itemsBinding); |
|
|
|
|
|
target.Bind(SelectingItemsControl.SelectedIndexProperty, selectedIndBinding); |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(1, target.SelectedIndex); |
|
|
|
|
|
|
|
|
|
|
|
target.SelectedIndex = 2; |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(2, target.SelectedIndex); |
|
|
|
|
|
Assert.Equal(2, vm.Child.SelectedIndex); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private FuncControlTemplate Template() |
|
|
private FuncControlTemplate Template() |
|
|
{ |
|
|
{ |
|
|
return new FuncControlTemplate<SelectingItemsControl>(control => |
|
|
return new FuncControlTemplate<SelectingItemsControl>(control => |
|
|
@ -785,6 +819,7 @@ namespace Avalonia.Controls.UnitTests.Primitives |
|
|
{ |
|
|
{ |
|
|
public IList<Item> Items { get; set; } |
|
|
public IList<Item> Items { get; set; } |
|
|
public Item SelectedItem { get; set; } |
|
|
public Item SelectedItem { get; set; } |
|
|
|
|
|
public int SelectedIndex { get; set; } |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private class RootWithItems : TestRoot |
|
|
private class RootWithItems : TestRoot |
|
|
|