/ / Bind list do kontrolki użytkownika (textbox posiadający w sobie przycisk) w datagrid c # .net winforms - c #, .net, winforms, user-controls

Lista powiązań do kontrolki użytkownika (pole tekstowe zawierające przycisk w niej) w datagrid c # .net winform - c #, .net, winforms, kontrole użytkownika

Mam dostosowaną siatkę danych w winformach. Każda komórka jest modyfikowana za pomocą kontrolki użytkownika (pole tekstowe ma przycisk wewnątrz). Chcę przypisać wartości list do datagrid. Jak zrobić?

Tutaj nie mogę tego użyć

DataTable dt = new DataTable();

dt.Columns.Add("Source", typeof(string));

foreach (var item in List)
{
DataRow dr = dt.NewRow();
dr[0] = item.toString();
dt.Rows.Add(dr);
}
dataGridView.DataSource = dt;

lub

dataGridView.DataSource = List;

Ponieważ nie będzie to odzwierciedlone w polu tekstowym komórki datagrid. Problem polega na tym, że pole tekstowe i przycisk są osadzone w komórce gridview.

Dodatkowe informacje:

this.Source = new DataGridViewTextBoxColumn();
this.Source.Name = "Source";
this.Source.Width = 350;
this.dataGridView1.Columns.Add(Source);

this.txtbtnControl = new TextBoxButtonControl();
this.txtbtnControl.Visible = false;
this.dataGridView1.Controls.Add(this.txtbtnControl);

public class TextBoxButtonControl : UserControl
{
public TextBox txtCode;
public Button btnCode;

public TextBoxButtonControl()
{
this.txtCode = new TextBox();
this.Controls.Add(this.txtCode);
this.btnCode = new Button();
this.Controls.Add(this.btnCode);
this.renderControl();
}
public void renderControl()
{
this.txtCode.Location = new Point(0, 0);
this.txtCode.Width = this.Width + 115;
this.txtCode.Height = this.Height;
this.btnCode.Location = new Point(this.Width + 115, 0);
this.btnCode.Width = 32;
this.btnCode.Height = 21;
}
}

Odpowiedzi:

0 dla odpowiedzi № 1
foreach (var item in List)
{
dataGridView1.Rows.Add(item);
}

Powyżej znajduje się rozwiązanie (przykład) dla problemu dla 1 kolumny w widoku datagrid.

foreach (var item in List)
{
string temp = "Get 2nd variable value";
dataGridView1.Rows.Add(item, temp);
}

Powyżej znajduje się rozwiązanie (przykład) dla 2 kolumn w widoku datagrid.

Dziękuję za całą pomoc.