Я пишу приложение winforms, в котором пользователь выбирает элемент из списка и редактирует некоторые данные, которые составляют часть связанного объекта. Затем изменения применяются из списка объектов к базовому файлу.
В ASP.Net назначение системному значению элемента списка, отличного от отображаемого пользователем текста, тривиально. В приложении winforms вы должны установить «Displaymember» и «Valuemember» каждого элемента в несколько более сложном (и не часто связанном с Интернетом) процессе.
Это я и сделал. В режиме отладки я подтвердил, что у каждого элемента теперь есть значение, которое является отображаемым элементом («дружественная» строка, которую видит пользователь), и ключом, значащим элементом, который содержит ключ к объекту хеш-таблицы, где обновляются данные существует.
Поэтому, когда пользователь выбирает строку для редактирования, программа должна передать «ключ» в хеш-таблицу, выдернуть объект и разрешить ему редактирование.
Подвох?
Я не вижу очевидного способа заставить программу взглянуть на значение элемента. Я наивно ожидал, что это заполнит свойство списка SelectedValue, но это было бы слишком просто. Так, как, черт возьми, я могу получить значение элемента списка?