Отключить автовыбор в AutoCompleteBox в WP7? - PullRequest
1 голос
/ 22 сентября 2011

Есть ли способ отключить AutoSelect в AutoCompleteBox в WP7?Что происходит сейчас, так это то, что каждый раз, когда я что-то пишу, и это указано в предложениях поиска, логика запускается.Это не то, что я хочу, потому что пользователь хотел бы выполнять фактический поиск только при нажатии на предложение, клавишу ввода или кнопку поиска.Итак, мой вопрос: как это можно отключить?

Как это делается сейчас:

В файле xaml, показывая AutoCompleteBox и привязывает его к ключу и выделению изменено:

<toolkit:AutoCompleteBox x:Name="AutoCompleteBox" FilterMode="None" ItemsSource="{Binding SearchSuggestion}" KeyUp="AutoCompleteBoxKeyUp" MinimumPrefixLength="3">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="KeyUp">
                    <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding TextBoxKeyUpCommand, Mode=OneWay}" CommandParameter="{Binding Text, ElementName=AutoCompleteBox}"/>
                </i:EventTrigger>
                <i:EventTrigger EventName="SelectionChanged">
                    <GalaSoft_MvvmLight_Command:EventToCommand x:Name="TextBoxSelectionChanged" Command="{Binding TextBoxSelectionChangedCommand, Mode=OneWay}" CommandParameter="{Binding Text, ElementName=AutoCompleteBox}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </toolkit:AutoCompleteBox>

В xaml.cs я слушаю событие keyup и отправляю сообщение для модели представления:

private void AutoCompleteBoxKeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Enter)
        {
            Messenger.Default.Send(new ViewModelMessage { Action = ViewModelMessage.ACTION_EXECUTE, Text = AutoCompleteBox.Text });
            Pivot.Focus();
        }
    }

В ViewModel:

    private void TextBoxKeyUp(string string)
    {
        _string = string;
    }

    private void TextBoxSelectionChanged(string string)
    {
        _string = string;
    }

private void ReceiveMessage(ViewModelMessage message)
    {
        switch (message.Action)
       {
            case ViewModelMessage.ACTION_EXECUTE:
                _string = message.Text;
                break;
        }
    }

ПроблемаКажется, что событие SelectionChanged возникает, когда я нажимаю на раскрывающийся список, но также и когда я набираю что-то, что указано в раскрывающемся списке.Надеюсь, кто-то может помочь:)

...