Как привязать к автозаполнению выбранного элемента с ObservableCollection - PullRequest
0 голосов
/ 13 февраля 2019

В настоящее время я использую окно автозаполнения из syncfusion.Текущий режим выбора установлен на Token

<autocomplete:SfAutoComplete x:Name="autoComplete"
                                DisplayMemberPath="Location"
                                MultiSelectMode="Token"
                                HeightRequest="120"
                                HorizontalOptions="FillAndExpand"
                                TokensWrapMode="Wrap" 
                                SelectedItem="{Binding SelectedLocation}"
                                DataSource="{Binding FilteredLocations}"                                                   
                                Text="{Binding SearchLocation, Mode=TwoWay}" >
</autocomplete:SfAutoComplete>

В настоящее время я использую подход MVVM, как связать с SelectedLocation без использования базового типа объекта.

private ObservableCollection<SearchItem> _filteredLocations;
public ObservableCollection<SearchItem> FilteredLocations
{
    get { return _filteredLocations; }
    set { SetProperty(ref _filteredLocations, value); }
}

Что яу меня есть текущие работы

public object SelectedLocation
{
    get { return _selectedLocation; }
    set
    {
        SetProperty(ref _selectedLocation, value);
    }
}

Но я не хочу, чтобы тип был object, и то, что я изменяю на ObservableCollection<SearchItem>, SelectedLocation больше не поднимается.Могу ли я получить советы или предложения, чтобы правильно привязать к выбранному элементу, когда это коллекция.

То, что я пробовал, не сработало

public ObservableCollection<SearchItem> SelectedLocation
{
    get { return _selectedLocation; }
    set
    {
        SetProperty(ref _selectedLocation, value);
    }
}

1 Ответ

0 голосов
/ 13 февраля 2019

Отредактировано после пояснения из ОП:

Похоже, вам придется заставить его работать, используя ObservableCollection<object>.Если вы затем хотите получить доступ к отдельным объектам SearchItem, вам понадобится механизм для вызова другого метода или метода установки свойств и приведения этих элементов туда.

public ObservableCollection<object> SelectedLocation
{
    get { return _selectedLocation; }
    set
    {
        SetProperty(ref _selectedLocation, value);
    }
}

Полный пример использования ObservableCollection<object> и последующего приведения результатов к строкам (или в вашем случае к SearchItem) приведен в статье базы знаний: Как получить SelectedText из автозаполнения .Это не 1: 1 для вашего варианта использования, но должно быть достаточно для продолжения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...