Nick K.
Nick K.

Reputation: 23

How do you set ItemDisplayBinding for a Picker programmatically in C# using Xamarin Forms?

My model looks like this:

public class TaskFrequency
{
    public int Id { get; set; }
    public string FrequencyString { get; set; }
    public eFrequency Frequency { get; set; }
}

then I tried the following but didn't work: ItemDisplayBinding = new Binding("FrequencyString");

I know ItemDisplayBinding is of BindingBase class. When I set it in XAML, it works fine.

Upvotes: 2

Views: 1635

Answers (1)

Wendy Zang - MSFT
Wendy Zang - MSFT

Reputation: 10978

I make a code sample for your reference.

xaml:

 <Picker
            x:Name="picker"
            Title="Select ....."
            ItemsSource="{Binding taskFrequencies}"
            TitleColor="Red" />

code behind:

 public  ObservableCollection<TaskFrequency>  taskFrequencies { get; set; }
    public PickerPage()
    {
        InitializeComponent();
        taskFrequencies = new ObservableCollection<TaskFrequency>()
        {
            new TaskFrequency{ FrequencyString="FrequencyString1", Id=1  },
            new TaskFrequency{ FrequencyString="FrequencyString2",  Id=2 },
            new TaskFrequency{ FrequencyString="FrequencyString3",  Id=3},
        };


        picker.ItemDisplayBinding = new Binding("FrequencyString");



        this.BindingContext = this;
    }

model:

 public class TaskFrequency
{
    public int Id { get; set; }
    public string FrequencyString { get; set; }
    //public eFrequency Frequency { get; set; }
}

Use the Bindbase like below works for me.

  picker.ItemDisplayBinding = new Binding("FrequencyString");

Screenshot:

enter image description here

Upvotes: 2

Related Questions