Как привязать базовый объект к элементу управления?

Использование WinForms и привязки данных.

У меня есть форма, содержащая компонент BindingSource, и я установил свойство DataSource из дизайнера в класс:

public class MyClass
{
    public string MyString {get;set;}
}

Теперь, как мне получить объект MyClass, назначенный BindingSource из исходного кода?

Я попытался преобразовать свойство DataSource BindingSource в MyClass, но не работает.

Дополнительные замечания

Моя проблема заключается в том, что я установил DataSource из WinForms Designer.
Затем DataSource устанавливается на тип MyClass, а не на фактический объект.

Итак, создан ли объект, к которому я могу получить доступ и изменить его из кода, чтобы значения из ограниченного объекта отображались в элементах управления формы?

Спасибо.


person Stécy    schedule 16.12.2011    source источник


Ответы (1)


Чтобы добавить объектный источник данных в приложение WinForms, выберите в меню Data > Add New Data Source. В мастере настройки источника данных выберите Object и нажмите Next. Выберите класс, который вы хотите использовать в качестве источника данных, и нажмите Finish. Публичные свойства класса теперь должны появиться в окне «Источники данных».

Затем, после того как вы это сделаете, создайте экземпляр класса и назначьте его свойству DataSource. Например:

private void Form1_Load(object sender, EventArgs e)
{
    MyClass myClass = new MyClass()
    {
        MyString = "aaaa"
    };

    myClassBindingSource.DataSource = myClass;
}
person TheBoyan    schedule 16.12.2011
comment
Насколько я понимаю, я мог бы привязываться к простому классу. - person Stécy; 16.12.2011
comment
Да, вы можете привязать определенные элементы управления к классу. Дополнительные сведения см. в следующей статье: msdn.microsoft.com/en-us /библиотека/c8aebh9k.aspx - person TheBoyan; 16.12.2011
comment
Дополнение к вашему обновлению: оно уже подключено таким образом. Проблема в том, что для свойства DataSource задан тип объекта, а не фактический объект. - person Stécy; 16.12.2011
comment
Я, наконец, думаю, что полностью понял ваш вопрос. Я снова обновил ответ. - person TheBoyan; 16.12.2011
comment
@Stécy - это невозможно сделать. Но что плохого в том, чтобы заполнить его из кода. Есть ли какая-то конкретная причина, по которой вы хотите это сделать. - person TheBoyan; 16.12.2011
comment
Есть одна простая причина: предоставить среду, в которой программист мог бы только перетаскивать компоненты и элементы управления в области дизайна и настраивать свойства. - person Stécy; 16.12.2011