Привязка унаследованного списка для управления автозаполнением

#c# #xamarin.forms

#c# #xamarin.forms

Вопрос:

Итак, я создал пользовательский элемент управления для автозаполнения, и все работает, за исключением того, что мой список не будет привязан. Я установил список как список типа интерфейса, чтобы я мог использовать различные объекты, которые все наследуются от этого типа.

 public static readonly BindableProperty DataListProperty =
  BindableProperty.Create(nameof(DataList), typeof(List<IAutoCompleteModel>), typeof(AutoCompleteT),
    default(List<IAutoCompleteModel>), propertyChanged: DataListPropertyChanged);

public List<IAutoCompleteModel> DataList
{
  get { return (List<IAutoCompleteModel>)GetValue(DataListProperty); }
  set { SetValue(DataListProperty, value); }
}

private static void DataListPropertyChanged(BindableObject bindable, object oldValue, object newValue)
{
  AutoCompleteT control = (AutoCompleteT)bindable;
  List<IAutoCompleteModel> temp = (List<IAutoCompleteModel>)newValue;

  control.Data.Clear();

  foreach (IAutoCompleteModel model in temp.OrderBy(prop => prop.Title))
    control.Data.Add(model.Title);
}
  

Интерфейс

   public interface IAutoCompleteModel
  {
    public Guid Id { get; set; }
    public string Title { get; set; }
  }
  

Комментарии:

1. Где код привязки? Не могли бы вы поделиться с нами минимальным, воспроизводимым примером?

2. Я привязываюсь к списку объектов, которые наследуются от интерфейса. {Привязка клиентов} Довольно просто. В итоге я сделал это по-другому и установил объекты, унаследовавшие интерфейс, для реализации метода, который создает объект. общедоступный класс AutoCompleteModel { общедоступный идентификатор Guid { get; set; } Заголовок общедоступной строки { get; set; } } Я надеялся на другое, но я соглашусь на это