Элементы ListView имеют DropDownList: как получить DataItem при изменении выбора?

Итак, у меня есть что-то вроде этого:

Моя настройка ListView

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

Когда пользователь выбирает дескриптор продукта для продукта, мне нужно изменить свойство связанного объекта, связанного с данными. Как мне получить доступ к этому объекту? У меня есть обработчик для события SelectedIndexChanged данного дескриптора продукта ComboBox, но как я могу получить DataItem строки, содержащей ComboBox, который изменил свой выбор?

Я думал о событии ItemCommand в ListView, но не вижу, как бы я использовал его в этом случае.

Я также видел этот пост, в котором в одном ответе упоминается хранение идентификаторов в скрытых полях: DropDownList внутри повторителя: как обрабатывать SelectedIndexChange и получать DataItem?

Но в таком случае, как мне получить идентификаторы из этих скрытых полей?

Спасибо за вашу помощь!

2 ответа

Решение

Ответ Тима Шмельтера привел меня к этому ответу:

            Dim comboBox = CType(sender, RadComboBox)
            Dim item = CType(comboBox.NamingContainer, ListViewItem)
            Dim myListItem = myCollection(item.DataItemIndex)

Вам просто нужно разыграть NamingContainer из DropDownList:

var ddl      = (DropDownList) sender;
var item     = (ListViewItem) ddl.NamingContainer;
var rowView  = (DataRowView)  item.DataItem;
Другие вопросы по тегам