Я знаю, как привязать данные к элементу управления.
Каков допустимый способ считывания настроек привязки данных в коде?
В графическом интерфейсе есть раздел (DataBindings) с Tag и Text .
Ниже вы можете видеть, что (привязки данных) имеет текст : _rosterBS - LastName
.
Я пытаюсь получить этот источник и свойство привязки (т. Е. Прочитать текстовое значение).

В конструкторе
//
// txtLastName
//
this.txtLastName.DataBindings.Add(new System.Windows.Forms.Binding("Text", this._rosterBS, "LastName", true));
this.txtLastName.Location = new System.Drawing.Point(7, 32);
this.txtLastName.Name = "txtLastName";
this.txtLastName.Size = new System.Drawing.Size(198, 20);
this.txtLastName.TabIndex = 1;
DataBindings происходит из этой версии класса Control:
//
// Summary:
// Defines the base class for controls, which are components with visual representation.
[ClassInterface(ClassInterfaceType.AutoDispatch)]
[ComVisible(true)]
[DefaultEvent("Click")]
[DefaultProperty("Text")]
[Designer("System.Windows.Forms.Design.ControlDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[DesignerSerializer("System.Windows.Forms.Design.ControlCodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", "System.ComponentModel.Design.Serialization.CodeDomSerializer, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[ToolboxItemFilter("System.Windows.Forms")]
public class Control : Component, IDropTarget, ISynchronizeInvoke, IWin32Window, IArrangedElement, IBindableComponent, IComponent, IDisposable
{
Оттуда я начал искать IBindableComponent
//
// Summary:
// Enables a non-control component to emulate the data-binding behavior of a Windows
// Forms control.
public interface IBindableComponent : IComponent, IDisposable
{
//
// Summary:
// Gets or sets the collection of currency managers for the System.Windows.Forms.IBindableComponent.
//
// Returns:
// The collection of System.Windows.Forms.BindingManagerBase objects for this System.Windows.Forms.IBindableComponent.
BindingContext BindingContext { get; set; }
Затем я стал гоняться за BindingContext
, но, похоже, я не получаю ничего, что содержит информацию, которую я ищу.
К вашему сведению: зачем мне это? В настоящее время я могу проверить контекст данных Linq-To-SQL на наличие изменений, чтобы запросить сохранение при выходе, но это не позволяет пользователю узнать, какое поле изменилось. У меня есть способ вручную сравнить оригинал с новой версией в каждом элементе управления, но реализация этого во всем нашем наборе решений потребует ручного кодирования каждой формы.
Обновление: это НЕ для элементов управления DevExpress.