Я обычно программирую на C++, поэтому весь этот материал DataSource/DataSet/Binding путает меня. Надеюсь, вы, ребята, можете помочь.Использование DataSource с TextBox
В основном я пишу редактор для формата файла на основе XML (в частности, OFX для финансовых данных). Я использовал xsd.exe в своей схеме для десериализации загруженных файлов в красивые, простые старые классы. Я обнаружил DataGridView, который является блестящим, и я могу просто установить его свойство DataSource в одну из интересующих меня коллекций (в частности, список транзакций), и когда я сошлюсь со значениями, которые эти изменения отразятся в загруженном десериализованный файл, который затем я могу сериализовать при сохранении. Но когда я хочу «отобразить» просто простую строку в TextBox (например, номер учетной записи), я не могу использовать этот умный метод в TextBoxes, похоже, не имеет члена DataSource ... Используя их свойство «Текст» просто устанавливает текст один раз и не отражает изменения обратно к базовому объекту, поэтому сохранение должно сначала захватить значения из элемента управления. Я бы хотел, чтобы она была автоматической, как для DataGridView.
Я пытался возиться с DataBindings, но я понятия не имею, что использовать в качестве ИмениСвойства или DataMember, так что я не уверен, что это то, что я имел в виду, чтобы использовать:
accountNumberTextBox.DataBindings.Add(new Binding("???", myDocument.accountNumber, "???");
Я пропустил что-то действительно очевидное? Я надеюсь, что это так!
Ах, проблема в том, что генерируется класс, содержащий строку, которую я хочу связать. Есть ли способ сделать это менее навязчиво? –
@Pierre: спасибо, исправлено –
@Ben: вы можете либо сгенерировать логику уведомлений об изменении, либо написать класс, который обертывает ваш объект данных, и добавляет уведомление об изменении для целей привязки данных в пользовательском интерфейсе. –