|
|
|
@ -1,3 +1,4 @@ |
|
|
|
using System.Collections.ObjectModel; |
|
|
|
using System.Linq; |
|
|
|
using System.Reactive.Subjects; |
|
|
|
using Avalonia.Collections; |
|
|
|
@ -457,6 +458,33 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Initial_Binding_Of_SelectedItems_Should_Not_Cause_Write_To_SelectedItems() |
|
|
|
{ |
|
|
|
var target = new ListBox |
|
|
|
{ |
|
|
|
[!ListBox.ItemsProperty] = new Binding("Items"), |
|
|
|
[!ListBox.SelectedItemsProperty] = new Binding("SelectedItems"), |
|
|
|
}; |
|
|
|
|
|
|
|
var viewModel = new |
|
|
|
{ |
|
|
|
Items = new[] { "Foo", "Bar", "Baz " }, |
|
|
|
SelectedItems = new ObservableCollection<string> { "Bar" }, |
|
|
|
}; |
|
|
|
|
|
|
|
var raised = 0; |
|
|
|
|
|
|
|
viewModel.SelectedItems.CollectionChanged += (s, e) => ++raised; |
|
|
|
|
|
|
|
target.DataContext = viewModel; |
|
|
|
|
|
|
|
Assert.Equal(0, raised); |
|
|
|
Assert.Equal(new[] { "Bar" }, viewModel.SelectedItems); |
|
|
|
Assert.Equal(new[] { "Bar" }, target.SelectedItems); |
|
|
|
Assert.Equal(new[] { "Bar" }, target.Selection.SelectedItems); |
|
|
|
} |
|
|
|
|
|
|
|
private FuncControlTemplate ListBoxTemplate() |
|
|
|
{ |
|
|
|
return new FuncControlTemplate<ListBox>((parent, scope) => |
|
|
|
|