Hightlight текст в RadComboBox при закрытии меню

Я использую RadComboBox в Silverlight. Откуда-то я получил данные привязки. Вопрос в том, когда я щелкаю стрелку раскрывающегося списка, чтобы закрыть меню, но выбранный текст не сфокусирован или не выделен.

У меня есть LostFocusDropDownOpenedи SelectionChangedсобытия для этого RadComboBox. Я положил код

System.Windows.Browser.HtmlPage.Plugin.Focus();
this.comboBox.Focus();

в любом из этих событий.

Но выделенный текст в выпадающем меню не может быть сфокусирован (подсвечен). Может быть, это не может быть достигнуто внутри собственных событий?

РЕДАКТИРОВАТЬ:

Код:

<RadComboBox
Grid.Column="2"
Grid.Row="12"
x_Name="fileLocDropDown"
LostFocus="FileLocDropDown_LostFocus"
KeyDown="FileLocDropDown_KeyDown"
DropDownOpened="FileLocationDropDown_DropDownOpened"
IsEditable="True"
CanAutocompleteSelectItems="True"
IsUpperCase="True"
MaxDropDownHeight="600"
IsTextSearchEnabled="True"
Text="{Binding FileLocCode,Mode=TwoWay, Converter={StaticResource NullValueConverter},ConverterParameter='Text',NotifyOnValidationError=True}"
MaxLength="3"
SelectionChanged="FileLocDropDown_SelectionChanged"
ItemsSource="{Binding FileLocList}">
<RadComboBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" Background="LightYellow" >
            <TextBlock Margin="4,0,4,0" HorizontalAlignment="Left" Text="{Binding FileLocCode}" Width="30" />
            <TextBlock Margin="4,0,4,0" HorizontalAlignment="Left" Text="{Binding FileLocName}" Width="150" />
        </StackPanel>
    </DataTemplate>
</RadComboBox.ItemTemplate>

Изображение:

азбука

1 ответ

  1. На RadComboBox установите следующие значения:

    CanAutocompleteSelectItems="True" IsEditable="True"
    

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

    РЕДАКТИРОВАТЬ:
    Создайте новое свойство в классе, который содержит FileLocList, который объединяет строки FileLocCode и FileLocName (с разрывом строки там, я думаю, если вы хотите реплицировать эффект stackpanel).

    Затем избавьтесь от ItemTemplate и подключите DisplayMemberPath к новой строке.