Как предварительно заполнить автозаполнение SelectedItem - PullRequest
0 голосов
/ 15 февраля 2019

Из моего предыдущего поста это помогло определить, как связать выбранные элементы, Как связать с автозаполнением выделенного элемента с помощью ObservableCollection Но сейчас я пытаюсь улучшить эту логику.

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

Ключевое слово Class

public class Keyword : ObservableObject
{
    private string _value;
    public string Value
    {
        get { return _value; }
        set { SetProperty(ref _value, value); }
    }
}

ViewModel

private ObservableCollection<object> _selectedKeywords = new ObservableCollection<object>();
private ObservableCollection<Keyword> _keywords = new ObservableCollection<Keyword>();


public TestViewModel()
{
    Keywords = new ObservableCollection<Keyword>() 
    { 
        new Keyword { Value = "Apples" }, 
        new Keyword { Value = "Bananas" }, 
        new Keyword { Value = "Celery" } 
    };
    SelectedKeywords = new ObservableCollection<object>(Keywords.Where(x => x.Value == "Apples"));
}

public ObservableCollection<object> SelectedKeywords
{
    get { return _selectedKeywords; }
    set { SetProperty(ref _selectedKeywords, value); }
}
public ObservableCollection<Keyword> Keywords
{
    get { return _keywords; }
    set { SetProperty(ref _keywords, value); }
}

View

<autocomplete:SfAutoComplete MultiSelectMode="Token"
                            HorizontalOptions="FillAndExpand"                                                                
                            VerticalOptions="EndAndExpand"
                            TokensWrapMode="Wrap" 
                            Text="{Binding Keyword, Mode=TwoWay }"
                            IsSelectedItemsVisibleInDropDown="false"
                            Watermark="Add..."
                            HeightRequest="120"
                            SelectedItem="{Binding SelectedKeywords}"
                            DataSource="{Binding Keywords}">
</autocomplete:SfAutoComplete>

Ответы [ 2 ]

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

Мы подготовили образец из вашего фрагмента кода, и вы пропустили добавление свойства DisplayMemberPath в фрагмент кода.Пожалуйста, найдите образец из нижеуказанного местоположения.

http://www.syncfusion.com/downloads/support/directtrac/general/ze/AutoCompleteSample-270923957.zip

Примечание : я работаю в Syncfusion.

С уважением,

Dhanasekar

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

Чтобы сделать его предварительно выбранным в модели представления, задайте значение для привязки, которую вы связали в своем представлении, в основном присвойте значение SelectedKeywords

Что-то вроде:

SelectedKeywords = Keywords.FirstOrDefault();

Возможно, вам понадобится двусторонняя привязка, не уверен, потому что никогда не использовал этот элемент управления:

 SelectedItem="{Binding SelectedKeywords, Mode=TwoWay}"
...