Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Как получить текст выбранного элемента ComboBox с иконками

Даже не знал, что заткнусь в такой элементарной ситуации.

У меня простой вопрос.
Хочу получить текст выбранного элемента ComboBox'a при событии SelectionChanged. Никак не могу достучаться до свойства Text выбранного элемента.

C#
1
2
3
4
5
6
private void ComboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   var comboItem = ComboBox1.SelectedItem;
   
    // А как дальше???....
}
Понимаю, что выбранный элемент состоит из контейнера с Image и TextBlock, а как добраться до TextBlock.Text не получается.
Вот пример ComboBox с иконками:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<ComboBox x:Name="ComboBox1" HorizontalAlignment="Left" MinWidth="100" Height="30" 
     VerticalAlignment="Bottom" 
     VerticalContentAlignment="Center" 
     SelectedIndex="0" 
     SelectionChanged="ComboBox1_SelectionChanged">
 
    <ComboBoxItem x:Name="ComboBoxItem1">
        <StackPanel Orientation="Horizontal">
            <Image Height="16" Width="16" Source="/Images/Image_1.ico"/>
            <TextBlock Margin="5,0,0,0" Text="Пример 1"/>
        </StackPanel>
    </ComboBoxItem>    
    
    <ComboBoxItem x:Name="ComboBoxItem2">
        <StackPanel Orientation="Horizontal">
            <Image Height="16"  Width="16" Source="/Images/Image_2.ico"/>
            <TextBlock Margin="5,0,0,0" Text="Пример 2"/>
        </StackPanel>
    </ComboBoxItem>
 
    <ComboBoxItem x:Name="ComboBoxItem3">
        <StackPanel Orientation="Horizontal">
            <Image Height="16" Width="16" Source="/Images/Image_1.ico"/>
            <TextBlock Margin="5,0,0,0" Text="Пример 3"/>
        </StackPanel>
    </ComboBoxItem>
    
</ComboBox>
Заранее спасибо.
Ответ: Я понимаю что прошло 2.5 года, но это первая ссылка в поисковике по запросу. Поэтому кто попал сюда, у бокса есть свой стандартный метод.
C#
1
2
3
4
        private void ComboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
             MessageBox.Show(ComboBox1.GetItemText(ComboBox1.SelectedItem));
        }
Вопрос: Получить значение выбранного элемента в combobox

Есть 2 элемента. combobox и TextBlock. В combobox подгружаются элементы из БД. Пользователь выбирает любой элемент, в combobox, после чего выбранный элемент записывается в TextBlock.
Проблема в том,что я не могу получить строковое значение выбранного элемента в combobox.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
              using (ProgContext db = new ProgContext()) //контекст БД
            {
                ImagesList.ItemsSource = db.Images.ToList(); //подгружаю в combobox БД
 
                ImagesList.SelectedItem = ImagesList.Items[0]; //устанавливаю стартовый итем
                ImagesList.PlaceholderText = ImagesList.Items[0].ToString(); // устанавливаю текст стартового итема
 
                var img = db.Images.FirstOrDefault(c => c.Name == ImagesList.Items[1].ToString()); //поиск по имени в БД
                if (img != null)
                {
                    Windows.UI.Xaml.Media.Imaging.BitmapImage bitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
                    bitmap.UriSource = new Uri("ms-appx:///" + img.ImagPath);
                    SelectImage.Source = bitmap; //подгружаю изображение
                    SelectImageName.Text = img.Name; //вывод в TextBlock название изображения
                }
                else SelectImageName.Text = ImagesList.Items[1].ToString();
                
            }
БД - имя изображения и путь к нему. Если вместо ImagesList.Items[1].ToString() прописать вручную строку, то код работает, все хорошо. Пробовал и ImagesList.SelectetValue и ImagesList.SelectetValue.ToString(),никак.
SelectImageName - TextBlock.
ImagesList - combobox.
Images - БД.
Ответ:
Сообщение от Mobong
Ни Image, ни images в строке SelectImageName.Text = ((Image)ImagesList.SelectedItem).ToString(); не вернули текст.
Images.
Судя по public DbSet<Images> Images { get; set; } в списке объекты класса Images с его свойствами. Но в классе не прописано переопределение ToString - и он вернёт полное название класса.
Что Вам нужно получить? Какое свойство этого класса? Или какие, то ещё другие данные?

Добавлено через 1 час 18 минут
Не зная что Вам нужно трудно, точно сказать. Если одно из свойств Images, то надо привести к этому классу (не к Image, а Images) и получить его так
C#
1
SelectImageName.Text = ((Images)ImagesList.SelectedItem).ИмяСвойства;
Где ИмяСвойства одно из Id, Name, ImagPath
Вопрос: Как получить значение выбранного элемента ComboBox?

Здравствуйте.
А как получить значение из combobox, чтобы можно было запихать его в эту функцию?
C++
1
COMport = CreateFile(из combobox, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
Ответ: Владислав_Минск, у тебя Visual Studio, а не Builder. Тебе в другой раздел.
Вопрос: Как получить значение выбранное в поле со списком

Необходимо получить значение выбранное в поле со списком в переменную. Например, как вот тут если выбранное значение "Чебурашка", то и в переменную должно быть записано "Чебурашка". Заранее всем большое спасибо!
Ответ: просто один из способов посмотреть значение переменной ... как правило в целях отладки
Вопрос: Как из listView получить значение выбранного Items ?

Как из listView по щелчку получить значение выбранного Items ? Ничего не выходит. В listView есть 2 столбца Number и Name. И в них находятся данные. Как из столбца Name по щелчку получить значение выбранного Item
Ответ: Да, я так и сделал, спасибо за ответ
Вопрос: Как получить номер выбранного элемента listBox?

Как получить номер выбранного элемента listBox?
Ответ: LB_GETCURSEL, см. таблицу
Вопрос: Элемент ComboBox

Добрый день как из combobox получить значение элемента или его текст?
Получаю из запроса список и заношу его в комбо.
while (!DataModule5->Direction->Eof) {
ComboBox1->Items->Add(DataModule5->Direction->FieldByName("Полное_название")->AsString);
ComboBox1->ItemIndex=DataModule5->Direction->FieldByName("ID")->AsInteger;
DataModule5->Direction->Next();
}

Пытаюсь получить в edit текст выбранного элемента или значение но не получается
Edit1->Text=ComboBox1->Text

Edit1->Text=ComboBox1->Items->Objects[ComboBox1->ItemIndex]
Ответ:
kot07
Добрый день как из combobox получить значение элемента или его текст?


ОК, а что если на минуточку представить, что Dimitry Sibiryakov действительно тебе даёт дельный совет ?
Что надо сделать тогда ?
Надо найти в документации по Билдеру пример использования комбобокса (или в сети где-то, если его нет
в документации), и попробовать сделать так же, по аналогии, не правда ли, так будет быстрее ?
Вопрос: Thymeleaf получить значение выбранного Radio

Добрый день.
Хочу получить определенный RadioButton выбранный на UI
вот тестовый код:
Кликните здесь для просмотра всего текста
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 <table width="50%" border="0" align="center">
        <form action="addRadio"  method="post" >
 
        <tr>
            <td width="20%">
                Структура:
            </td>
            <td>
                <input type="radio" name="rbn" th:value="*{Red}" value="Red"/>Red
                <input type="radio" name="rbn" th:value="*{White}" value="White"/>White
                <input type="radio" name="rbn" th:value="*{Blue}" value="Blue"/>Blue
                <input type="radio" name="rbn" th:value="*{Yellow}" value="Yellow"/>Yellow
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" value="Submit"/>
            </td>
        </tr>
        </form>
    </table>

Так пытаюсь получить:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
   @RequestMapping(name = "/addRadio", method =  RequestMethod.POST)
    public ModelAndView add(@RequestParam(value = "rbn", required = false) String name){
        ModelAndView modelAndView = new ModelAndView();
        System.out.println("Type Radio: "+name);
        modelAndView.setViewName("addFabric/testRadio");
        return modelAndView;
    }
Ответ: 1.
Thymeleaf получить значение выбранного Radio
Таймлиф ничего не получает от пользователя, это шаблонизатор, он генерирует html, который Вы отдаете юзеру.

2.
HTML5
1
<input type="radio" name="rbn" th:value="*{Red}" value="Red"/>Red
Насколько я помню, конструкция *{field} позволяет обратиться к полям объекта, которым Вы опрерируете. А Вы никаким объектом в форме не оперируете.

3. th:value="" перекрывает значение value=""

Добавлено через 3 минуты
4. Используйте режим отладчика в браузерах, что бы смотреть сгенерировал ли Вам шаблонизатор то, чего Вы хотели добиться.
Вопрос: Заполнение базы данных используя элемент combobox

Доброго времени суток.
Подскажите пожалуйста код для заполнение базы данных используя элемент ComboBox

Выбираем в элементе ComboBox необходимую запись, нажимаем на кнопку Insert и запись заносится в базу данных.
Форма выглядит как-то так:
Ответ: Если у вас такая ситуация (в ComboBox записывается столбец с ключом(типо справочника, дабы соблюдать нормализацию), тогда можно получить этот ключ) и тогда при помощи sql-запроса добавить запись в БД
C#
1
2
3
4
5
6
7
8
string command_Kategoriya_neperiod = "SELECT * FROM Kategoriya_neperiod";
                DataTable dt_Kategoriya_neperiod = new DataTable();
                SqlConnection con = new SqlConnection(connect);
                SqlDataAdapter dataAdapter_Kategoriya_neperiod = new SqlDataAdapter(command_Kategoriya_neperiod, con);
                dataAdapter_Kategoriya_neperiod.Fill(dt_Kategoriya_neperiod);
                comboBox2.DataSource = dt_Kategoriya_neperiod;
                comboBox2.DisplayMember = "Kategoriya";
                comboBox2.ValueMember = "ID_kategoriya";
Выше приведен пример кода заполнения comboBox
C#
1
comboBox2.SelectedValue.ToString()
а вот так можно получить код выбранного элемента к comboBox
Вопрос: Динамическое обновление элементов combobox, wpf

Подскажите пожалуйста как решить проблему. Есть combobox, у него выполнена привязка ItemSource из контекста. Привязывается ObservableCollection элементами которой являются объекты со свойствами id, description. SelectedValuePath="id", DisplayMemberPath="description". Id не может меняться в коде, description может меняться в коде. Как заставить обновиться визуальное представление элемента combobox при изменении в коде description элемента коллекция, которая привязана к combobox? В частности текущего, выбранного элемента. Если просто изменить description в коде, в combobox останется старое описание элемента.
Ответ: Да, именно так и нужно. Спасибо. Что-то сразу не разобрался. У меня все другие привязки и работали через реализацию INotifyPropertyChanged. А элементы отслеживаемой коллекции были объекты обычного класса. Отнаследовал их от ViewModelBase (который реализует INotifyPropertyChanged) и в сеттере запустил соответствующее событие. Все ок.