Как получить выделенный элемент только из выпадающего списка WPF (C # 3.0) - PullRequest
1 голос
/ 26 июля 2010

У меня есть комбинированный список WPF и кнопка, как показано ниже

<ComboBox Name="cmbExpressions" IsEditable="True"/>
<Button x:Name="btnSubmit" Content="Apply Selected" Click="btnSubmit_Click"/>

Теперь я написал текст в поле со списком во время выполнения, скажем,

stackoverflow,sometext,someothertext.

После этого с помощью мыши, скажем, я выделил "sometext ".

Теперь я нажал на кнопку «Отправить» и ожидаю получить

output as only the 

selected /highlighted text  of the combobox which is "Sometext" here

.

Я много пробовал с выбранным элементом, текстом и т. Д., Но ничего не получалось.

Как мне этого добиться.

Я использую C # 3.0 и WPF

Спасибо

1 Ответ

3 голосов
/ 26 июля 2010

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

var editableTextBox = cmbExpressions.Template.FindName("PART_EditableTextBox", cmbExpressions) as TextBox;
if (editableTextBox != null)
{
    var text = editableTextBox.SelectedText;
}

Хотя это звучит как очень странный интерфейс.Пользователи обычно не ожидают, что выбор текста в поле со списком повлияет на поведение.Имейте в виду, что ComboBox автоматически выделит весь текст в TextBox, когда он получит фокус.

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