powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / как узнать из C# выделенный пункт?
2 сообщений из 2, страница 1 из 1
как узнать из C# выделенный пункт?
    #39481401
хорошо я согласен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, взял такую тренировочную себе задачку:
Исходная таблица (задана как List структур)
Фамилия ... КодСтатуса СтатусИванов ... 2 Зелёный
Статусы (тоже лист структур):
Id Name1 Красный2 Зелёный3 Синий
На форме нарисован DataGrid - отображает список этих людей
Ниже нарисован ComboBox - статус текущего выделенного человека.

Привязкой данных я сделал так, чтобы изменении значения в выпадающем списке, менялось бы значение в столбце "КодСтатуса"
Код: xml
1.
2.
3.
4.
5.
<ComboBox
    SelectedValuePath="Id"
    DisplayMemberPath="Name"
    ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=DataContext.Status}"
    SelectedValue="{Binding StatusId} />"


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

Причина проблемы кроется в моём полном непонимании, куда конкретно сохраняется информация о текущем элементе при установленном
Код: xml
1.
IsSynchronizedWithCurrentItem="True"
...
Рейтинг: 0 / 0
как узнать из C# выделенный пункт?
    #39481621
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошо я согласен,

текущий элемент синхронизируется с представлением коллекции. Если представление не указано явно в ItemsSource, оно будет созданно при первом запросе с помощью CollectionViewSource.GetDefaultView(IEnumerable).
Можно самому создать представление и передать его в свойство ItemsSource, тогда будет взять именно оно, а не создано\использовано по умолчанию.
В 1 потоке может быть только 1но представление по умолчанию, но если вызвать из разных потоков этот метод,
то получишь разные представления. Это важно учитывать.
Именно с этим классом представления коллекции синхронизируется ItemsControl в плане текущего элемента.
Но текущий, не значит выбранный, это так же важно учитывать.
У комбобокса есть свойство зависимости SelectedItem, SelectedIndex и SelectedValue, можно просто настроить Binding, для получения текущего выделенного элемента.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / как узнать из C# выделенный пункт?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]