|
|
@@ -749,6 +749,40 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
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()
|
|
|
{
|
|
|
return new FuncControlTemplate<SelectingItemsControl>(control =>
|
|
|
@@ -785,6 +819,7 @@ namespace Avalonia.Controls.UnitTests.Primitives
|
|
|
{
|
|
|
public IList<Item> Items { get; set; }
|
|
|
public Item SelectedItem { get; set; }
|
|
|
+ public int SelectedIndex { get; set; }
|
|
|
}
|
|
|
|
|
|
private class RootWithItems : TestRoot
|