#xamarin.forms #picker
#xamarin.forms #средство выбора
Вопрос:
Как связать свойство с выбранным элементом средства выбора?
var kmList = new List<string>();
kmList.Add("1");
kmList.Add("2");
kmList.Add("3");
kmList.Add("4");
kmList.Add("5");
kmList.Add("6");
kmList.Add("7");
var picker = new Picker { Title = "Select a km", TitleColor = Color.Red };
picker.ItemsSource = kmList;
Например, если я выбираю 7, то необходимо, чтобы это значение было доступно в переменной SelectedNumber:
public class TodoItem
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
public string SelectedNumber { get; set; }
}
Результирующее значение из средства выбора необходимо сохранить в базе данных, но сначала мне нужно установить SelectedNumber
значение с выбранным элементом средства выбора.
Ответ №1:
Вы можете привязать свойство выбранного элемента ViewModel к SelectedItem
свойству средства выбора, вот так:
public class Monkey
{
public string Name { get; set; }
public string Location { get; set; }
public string Details { get; set; }
public string ImageUrl { get; set; }
}
public class MonkeysViewModel
{
public ObservableCollection<Monkey> Monkeys { get; set; }
public Monkey SelectedMonkey { get; set; }
}
<Picker Title="Select a monkey"
TitleColor="Red"
ItemsSource="{Binding Monkeys}"
ItemDisplayBinding="{Binding Name}"
SelectedItem="{Binding SelectedMonkey}" />
Кроме того, вы можете прочитать больше об этом в Документах Microsoft.
Комментарии:
1. Я прочитал это несколько раз, но так и не смог понять, как это сделать на c#. класс Monkey понятен, класс MonkeysViewModel — я не понимаю, зачем это нужно, что отвечает за привязку данных из этого ItemsSource, ItemDisplayBinding или SelectedItem, Как привязать данные дальше с помощью C#?
Ответ №2:
Решено. На c # это выглядит следующим образом
picker.SetBinding(Picker.SelectedItemProperty, "SelectedNumber");