2012-03-22 3 views
1

В моем текущем приложении Windows я смотрю, как дать источник данных для моего usercontrol. На моей странице я добавляю свой собственный usercontrol в flowlayoutpanel, у usercontrol есть 3 текстовых поля, которые я хочу заполнить данными из источника данных.Usercontrol Datasource?

usercontrol uc = new usercontrol(); 
flowlayoutpanel.Controls.Add(uc); 
uc.DataSource? 

Я знаю, что в silverlight и ASP.NET вы можете добавить источник данных в usercontrol. В usercontrol вы получаете данные в текстовые поля, используя {Binding fieldname} в качестве своего содержимого. Я не могу найти информацию об этом для Windows Forms.

Спасибо за помощь. Томас

+0

Следует иметь в виду, что такие технологии, как Silverlight, содержат более сложный и расширенный способ привязки данных, где привязка данных по-прежнему представляет собой некоторую запоздалую мысль в WinForms. Ответ Стюарта - отличное место для начала, и, в частности, для вашей проблемы, вы, вероятно, в конечном итоге привязываетесь непосредственно к своим текстовым полям и вовсе не к каким-либо элементам управления контейнером (действуйте так, как если бы ваш пользовательский контроль содержал только три текстовых поля и ничего больше). –

+0

Да, я закончил использовать геттеры и сеттеры внутри пользовательского элемента управления. Кажется, неплохо работает. – Schoof

ответ

0

Я решил это (благодаря ссылке Стюарта), установив сеттеры и геттеры в свой usercontrol.

public partial class ucOpleiding : UserControl 
{ 
    public string Datum 
    { 
     get { return txtDatum.Text; } 
     set { txtDatum.Text = value; } 
    } 

    public string Plaats 
    { 
     get { return txtPlaats.Text; } 
     set { txtPlaats.Text = value; } 
    } 

    public string Omschrijving 
    { 
     get { return txtOmschrijving.Text; } 
     set { txtOmschrijving.Text = value; } 
    } 

    public ucOpleiding() 
    { 
     InitializeComponent(); 
    } 

И в моей основной форме я позвоню тем сеттерам и геттерам.

foreach (opleiding opl in ChauffeurManagement.getOpleidingen(Int32.Parse(cbbID.SelectedValue.ToString()))) 
{ 
    ucOpleiding uc = new ucOpleiding(); 

    uc.Datum = opl.datum.ToString(); 
    uc.Plaats = opl.plaats_instantie; 
    uc.Omschrijving = opl.omschrijving; 

    flpOpleidingen.Controls.Add(uc); 
} 
3

Там статья о MSDN, которые могут помочь вам осуществить это - Walkthrough: Creating a User Control that Supports Simple Data Binding (смотри также Complex и Lookup связывания данных Прохождения).

+0

Спасибо за ссылку, но когда они скажут вам «PhoneNumberBox», я не могу найти ее в списке связанных элементов управления. – Schoof

Смежные вопросы