xamarin формирует, как заполнить сборщик из кода - PullRequest
0 голосов
/ 03 апреля 2020

Вечерний Все,

Изучение форм Xamarin .. Попытка добавить сборщик со значениями чисел c ... (используя https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/picker/populating-itemssource)

I Я использовал пример на этой странице, чтобы заполнить средство выбора из представления ... которое работает нормально ... однако я хочу заполнить средство выбора из кода позади ...

<---XAML--->
      <Picker Grid.Column="4"  Grid.Row="2" ItemsSource="{Binding pickerSource}"/>

<---c#---->
         var pickerList = new List<string>();
                pickerList.Add("1");
                pickerList.Add("2");
                pickerList.Add("3");
                pickerList.Add("4");
                pickerList.Add("5");
                pickerList.Add("6");
                pickerList.Add("7");
                pickerList.Add("8");
                pickerList.Add("9");
                pickerList.Add("10");

                var pickerSource = new Picker { Title = "Quantity", TitleColor = Color.Red };
                pickerSource.ItemsSource = pickerList;

Средство выбора появляется на приложение, но когда оно выбрано, оно не заполняется никакими значениями ... почему эта привязка никому не нужна?

Спасибо

Также ... как примечание, если кто-то знает об инструменте который содержит все числовые значения c вместо меня, вручную заполняя его 1,2,3 et c ..

Еще раз спасибо


Спасибо @Jason за ответ ... Отсюда я пошел со следующим:

--- xaml -

<Picker Grid.Column="4"  Grid.Row="2" ItemsSource="{Binding pickerSource}"/>

--- c# ----

public List<string> pickerSource { get; set; }

 public void PopulateQuantityPicker()
        {
            var pickerList = new List<string>();
            pickerList.Add("1");
            pickerList.Add("2");
            pickerList.Add("3");
            pickerList.Add("4");
            pickerList.Add("5");
            pickerList.Add("6");
            pickerList.Add("7");
            pickerList.Add("8");
            pickerList.Add("9");
            pickerList.Add("10");

            pickerSource = pickerList;

            this.BindingContext = this;
}

Средство выбора в приложении, но оно не заполнено, оно пустое. Когда я нажимаю на него, я получаю следующее:

(также код выполняет PopulateQuantityPicker ())

enter image description here

1 Ответ

0 голосов
/ 03 апреля 2020

здесь вы привязываете свой ItemsSource к pickerSource

<Picker Grid.Column="4"  Grid.Row="2" ItemsSource="{Binding pickerSource}"/>

в своем коде, вам необходимо publi c свойство с именем pickerSource. Вы можете привязать только к publi c properties

public List<string> pickerSource { get; set }

// assign the data to your ItemsSource
pickerSource = pickerList;

// also be sure to set the BindingContext
BindingContext = this;

// this is creating a new picker named pickerSource.  You have already done 
// this in your XAML.  This is NOT NEEDED
var pickerSource = new Picker { Title = "Quantity", TitleColor = Color.Red };
pickerSource.ItemsSource = pickerList;

, если вы хотите сделать это из кода БЕЗ использования привязки, сначала вам нужно присвоить x:name вашему control

<Picker x:Name="myPicker" Grid.Column="4"  Grid.Row="2" />

затем в коде

myPicker.ItemsSource = pickerList;
...