Список выбора обновлен на внутренней стороне, но не на внешней стороне в формах xamarin

avatar
JaDa-ma
1 июля 2021 в 20:22
27
1
0

Я пытаюсь обновить список, привязанный к средству выбора в формах xamarin. После изменения содержимого свойство устанавливается правильно, но не обновляется визуально.

   public List<string> Types
        {
            get { return _types; }
            set
            {
                SetProperty(ref _types, value);
            }
        }

   pckTypes = new Picker() { ItemsSource = Model.Types, Title = "--Choose a type" };
Источник
Jason
1 июля 2021 в 20:24
0

как вы обновляете - вы присваиваете новое значение типам или просто добавляете/удаляете элементы из списка?

JaDa-ma
1 июля 2021 в 20:27
0

Я добавляю его: list.Add(item.Value.Display); Затем я устанавливаю Types=list

Jason
1 июля 2021 в 20:29
0

было бы более эффективно использовать ObservableCollection вместо LIst и просто добавлять непосредственно в Types. Реализует ли модель INotifyPropertyChanged?

JaDa-ma
1 июля 2021 в 20:43
1

Я починил это. Что я сделал, так это Types=updateList. Что я изменил, так это использование foreach с Types.add(item), и теперь это работает. Спасибо за вашу помощь.

ToolmakerSteve
2 июля 2021 в 09:59
0

@ JaDa-ma - учитывая, что вы исправили это, добавьте ниже ответ, показывающий работающий код. (Сейчас на этот вопрос нет ответа, поэтому люди, пытающиеся помочь, все равно будут приходить сюда, не осознавая, что ваша проблема решена.)

JaDa-ma
3 июля 2021 в 09:13
0

Это сработало для меня: ObservableCollection<TypeEvent> _dataList = await service.GetAllTypesAsync(); foreach (var item in _dataList) { Types.Add(item); }

Ответы (1)

avatar
JaDa-ma
29 декабря 2021 в 17:45
0

Это сработало для меня и решило мою проблему:

ObservableCollection<TypeEvent> _dataList = await service.GetAllTypesAsync();   
foreach (var item in _dataList) 
{ 
   Types.Add(item); 
}