Как связать userControls внутри DataRepeater в Windows Forms C#?
Как связать userControls внутри DataRepeater в Windows Forms C#?
Я не хочу использовать этот метод: http://blogs.msdn.com/b/vsdata/archive/2009/08/12/datarepeater-control-for-windows-forms.aspx но я хочу сделать привязку из DataSet/DataTable программно. Внутри повторителя только для тестов я поместил одно текстовое поле и одну метку. Также один UserControl, который также состоит из двух элементов управления: один ярлык и одно текстовое поле. Пока обновляются только первая метка и текстовое поле, но не пользовательский контроль. Что мне не хватает?
Это событие загрузки
private void DataRepeaterForm_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=ADRIAN-PC; Initial Catalog=AdventureWorks2008R2; Integrated Security=true;User id=;password=");
SqlCommand cmd = new SqlCommand("Select * from Person.Person", con);
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataTable items = new DataTable();
adapt.Fill(items);
textBox1.DataBindings.Add("Text", items, "FirstName");
label1.DataBindings.Add("Text", items, "LastName");
TextBox myUcTextBox1 = (TextBox)myUC1.Controls.Find("textBox1", true).First();
if( myUcTextBox1 != null)
myUcTextBox1.DataBindings.Add("Text", items, "LastName");
dataRepeater1.DataSource = items;
}
Должен ли я также использовать другие события, такие как DrawItem,...? С уважением.
1 ответ
Решение
Используйте BindingSource для добавления привязок:
BindingSource bindingSource1 = new BindingSource();
bindingSource1.DataSource = items;
textBox1.DataBindings.Add("Text", bindingSource1, "FirstName");
label1.DataBindings.Add("Text", bindingSource1, "LastName");
dataRepeater1.DataSource = bindingSource1;