public void SelectedItem_SelectedIndex_Changed() { var obj = new ContextFixture("Monkey", "Monkey"); var bindingContext = new BindingContext { Items = new ObservableCollection <object> { obj }, }; var picker = new BindablePicker { BindingContext = bindingContext, DisplayMemberPath = "DisplayName" }; picker.SetBinding(BindablePicker.ItemsSourceProperty, "Items"); picker.SetBinding(BindablePicker.SelectedItemProperty, "SelectedItem"); Assert.Equal(1, picker.Items.Count); Assert.Equal(-1, picker.SelectedIndex); Assert.Null(picker.SelectedItem); picker.SelectedItem = obj; Assert.Equal(0, picker.SelectedIndex); Assert.Equal(obj, picker.SelectedItem); picker.SelectedIndex = -1; Assert.Equal(-1, picker.SelectedIndex); Assert.Null(picker.SelectedItem); }
public void DisplayMemberPath_ShouldThrowArgumentException_InvalidPath() { var obj = new ContextFixture("Monkey", "Complex Monkey"); Func <Picker> picker = () => new BindablePicker { DisplayMemberPath = "Name", ItemsSource = new ObservableCollection <object> { obj }, SelectedIndex = 1 }; Assert.Throws <ArgumentException>(() => picker()); }
public void DisplayMemberPath_NestedPropertyExpression() { var obj = new ContextFixture { Nested = new ContextFixture.NestedClass { Nested = "NestedProperty" } }; var picker = new BindablePicker { DisplayMemberPath = "Nested.Nested", ItemsSource = new ObservableCollection <object> { obj }, SelectedIndex = 0 }; Assert.Equal("NestedProperty", picker.Items[0]); }
public void DisplayMemberFunc() { Func <object, string> customDisplayFunc = o => { var f = (ContextFixture)o; return($"{f.DisplayName} ({f.ComplexName})"); }; var obj = new ContextFixture("Monkey", "Complex Monkey"); var picker = new BindablePicker { DisplayMemberPath = "Name", DisplayMemberFunc = customDisplayFunc, ItemsSource = new ObservableCollection <object> { obj }, SelectedIndex = 1 }; Assert.Equal("Monkey (Complex Monkey)", picker.Items[0]); }