не могу показать текст списка в текстовом поле wpf - PullRequest
0 голосов
/ 16 февраля 2019

привет, парень, я использую этот код

private void combobox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    text_f1.text = combobox1.Text;
}

моя первая запись - "машина", а вторая запись - "телефон" ...

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

Это всегда немного позади

после этой проблемы я пытаюсь использовать этот код

text_f1.text = combobox1.DisplayMemberPath;

покажи мне

"MahName"

это неправильно

что мне делать?

Ответы [ 3 ]

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

combobox1.Text - редактируемый текст поля со списком (который немного отстает при изменении выбора).Точное решение зависит от того, какие элементы содержит поле со списком и как оно было настроено.

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

text_f1.Text = (string)combobox1.SelectedItem;

Если оно содержит объекты классаArticle (в качестве примера), вы можете получить текст с помощью

if (combobox1.SelectedItem is Article article) {
    text_f1.Text = article.MahName;
}

Или, если метод элементов ToString был переопределен

if (combobox1.SelectedItem != null) {
    text_f1.Text = combobox1.SelectedItem.ToString();
}

или

text_f1.Text = combobox1.SelectedItem?.ToString();

Эта последняя версия назначает null на text_f1, если нет выбранного элемента.Смотри: ?.и? [] нуль-условные операторы

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

Вы можете легко сделать это в XAML , используя ElementBinding .

<ComboBox x:Name="comboBox"/>
<TextBlock Text="{Binding Path=SelectedItem.MahName, ElementName=comboBox}"/>
0 голосов
/ 16 февраля 2019

Я думаю, что вы должны использовать событие SelectedIndexChanged вместо SelectionChanged.Ваш первый код должен работать с этим событием.

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