Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
javasharp1
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 16
#1

Как получить имя выделенного элемента listbox?

06.12.2016, 17:56. Просмотров 946. Ответов 4

Заполняю listbox через привязку(binding), теперь нужно записать в переменную имя выделенного элемента. Если бы заполнял через массив, а не биндинг, то решил бы задачу таким образом:
C#
1
var name = listbox.SelectedItem.ToString();
используя событие selectedchanged.
Но но в моем случае контрол заполняется через биндинг, и я не могу получить имя выделенного элемента стандартным способом.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2016, 17:56
Ответы с готовыми решениями:

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

Как по событию TreeView_SelectedItemChanged получить индекс выделенного элемента
Здравствуйте. Как по событию TreeView_SelectedItemChanged получить индекс...

Как получить Uid из вложенного элемента в listBox
Доброй ночи, только начал изучать wpf и c#, и столкнулся с непредвиденными...

Как задать Background для выделенного listBox
Делаю таким образом <ListBox.ItemContainerStyle> <Style...

ListView изменение выделенного элемента
Всем доброго времени суток!!! Подскажите, возможно ли изменить в listview...

4
novikov.ea
948 / 739 / 262
Регистрация: 10.06.2011
Сообщений: 1,408
06.12.2016, 18:01 #2
Лучший ответ Сообщение было отмечено javasharp1 как решение

Решение

Ну так, также используем SelectedItem:
C#
1
var name = (listbox.SelectedItem as MyClass).Name;
Цитата Сообщение от javasharp1 Посмотреть сообщение
Если бы заполнял через массив, а не биндинг
А в чём суть и отличия данных способов? В любом случае же источник данных задаётся в ItemsSource
1
javasharp1
1 / 1 / 0
Регистрация: 01.11.2016
Сообщений: 16
06.12.2016, 18:04  [ТС] #3
novikov.ea, если заполняю напрямую через массив, то получается свойством selecteditem по событию получить имя выделенного элемента, а если через привязку, то в ответ на это событие ничего не записывается
0
novikov.ea
948 / 739 / 262
Регистрация: 10.06.2011
Сообщений: 1,408
06.12.2016, 18:31 #4
Цитата Сообщение от javasharp1 Посмотреть сообщение
если заполняю напрямую через массив
Цитата Сообщение от javasharp1 Посмотреть сообщение
если через привязку
Покажите, что это за способы. Вот это они?
1.
C#
1
listbox.ItemsSource = someArray;
2.
XML
1
<ListBox ItemsSource="{Binding SomeArray}" />
Или какие? Ибо мне не понятно, что вы делаете, как вы делаете и что в итоге выходит.
0
EfimKR
55 / 28 / 13
Регистрация: 24.06.2014
Сообщений: 247
Записей в блоге: 1
10.12.2016, 01:50 #5
javasharp1, использовать привязку с SelectedItem.
XML
1
2
3
4
5
<ListBox ItemSource="{Binding ItemSource}" SelectedItem="{Binding SelectedItem}">
   <ListBox.DataContext>
      <local: ViewModel>
   </ListBox.DataContext>
</ListBox>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ViewModel : INotifyPropertyChanged
{
   //..................
   public ObservableCollection<SomeEntity> ItemSource;
   public string SelectedItem
   {
      get
      {
         return this.selectedItem;
       }
 
       set
       {
           if (value != this.selectedItem)
           {
               this.selectedItem= value;
               NotifyPropertyChanged();
           }
       }
    }
   //..................
}
При каждом изменении элемента в ListBox будет вызываться setter для SelectedItem. Таким образом у тебя будет доступ ко всему выбранному элементу. + есть готовые базовые реализации использовать которые чуть проще чем голый подход с INotifyPropertyChanged. Я использую Prism.
0
10.12.2016, 01:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2016, 01:50

Получить текст выделенного ListBoxItem
не могу получить текст выделенного ListBoxItem ошибка &quot;Ссылка на объект не...

Как получить значение ListBox?
Как получить значение ListBox? Пробовал, но в selectedBook не помещается...

Как получить выделенную строку из listbox
Имеется проблема. Есть листбокс, в нем хранятся пути к файлам. по нажатию на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru