WPF: редактируемое поле со списком не выбирает выделенную опцию, щелкнув или введенную - PullRequest
0 голосов
/ 05 февраля 2020

Я использую элемент управления списком в моем приложении wpf. Вот как это выглядит

<ComboBox Name="cmbCities" IsTextSearchEnabled="True" IsEditable="True" IsDropDownOpen="True" StaysOpenOnEdit="True" KeyUp="cmbCities_KeyUp" SelectedValue="{Binding SelectedCity}" ItemsSource="{Binding Cities}" SelectedValuePath="CityId" Height="30">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock>
                                <TextBlock.Text>
                                    <MultiBinding StringFormat="{}{0}: {1}">
                                        <Binding Path="CityName"/>
                                        <Binding Path="Url"/>
                                    </MultiBinding>
                                </TextBlock.Text>
                            </TextBlock>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>

Я пытаюсь сделать этот список редактируемым, чтобы при его наборе отфильтровывать содержал параметры из списка. делает это правильно. Это код фильтра в xaml.cs

 private void cmbCities_KeyUp(object sender, KeyEventArgs e)
        {
            CollectionView itemsViewOriginal = (CollectionView)CollectionViewSource.GetDefaultView(cmbCities.ItemsSource);

            itemsViewOriginal.Filter = (o) =>
            {
                if (((SqlGetAllCitiesResponse)o).CityName.Contains(cmbCities.Text))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            };

            itemsViewOriginal.Refresh();
        }

Проблема в том, что клавиши со стрелками вверх и вниз на клавиатуре не работают, чтобы выбрать отображение отфильтрованного списка, и если попытаться выбрать с помощью мыши, то это не показывает выбранный текст опции в выпадающем списке. Он показывает модель класса ответа, выбранную в выпадающем списке при выборе мышью. Пожалуйста, помогите мне, чтобы я мог выбрать с помощью клавиш со стрелками в Combox, а также с помощью мыши ...

...