【问题标题】:Bind Picker selected value to a property Xamarin.Forms将选取器选定值绑定到属性 Xamarin.Forms
【发布时间】:2019-03-31 07:37:39
【问题描述】:

如何将属性与选择器的选定项相关联?

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 值。

【问题讨论】:

    标签: xamarin.forms picker


    【解决方案1】:

    您可以将 ViewModel 选定项属性绑定到 Picker 的 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 Docs 中阅读更多相关信息。

    【讨论】:

    • 我读了好几遍,但我不明白如何在c#中做到这一点。 class Monkey 是可以理解的 class MonkeysViewModel - 我不明白为什么它需要负责绑定来自此 ItemsSource、ItemDisplayBinding 或 SelectedItem 的数据,如何使用 C# 绑定数据?
    【解决方案2】:

    解决了。在 c# 上看起来像这样

    picker.SetBinding(Picker.SelectedItemProperty, "SelectedNumber");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-22
      • 1970-01-01
      • 1970-01-01
      • 2014-11-12
      • 2013-03-25
      • 2016-05-11
      • 2014-11-11
      • 1970-01-01
      相关资源
      最近更新 更多