привязка данных к пользовательскому контролю - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть userControl (смотрите скриншот): enter image description here

Я хотел бы знать, как я могу привязать данные к этому элементу управления.

1) я хочу перетащить &перетащите этот пользовательский контроль в форму 2) я хочу решить, какую таблицу из моей базы данных следует использовать 3) сетку данных (серый элемент управления внизу) следует автоматически привязать к источнику данных, который указывает на таблицу, которую я хочу использовать 4)Подробная вкладка в usercontrol должна автоматически заполняться меткой + текстовым полем для каждого поля таблицы, которое я хочу использовать

Мой вопрос: как я могу это реализовать?Есть идеи?

привет

1 Ответ

3 голосов
/ 29 сентября 2011

1) Когда вы создаете свой проект, ваш UserControl отображается на панели инструментов VisualStudio, так что вы можете перетаскивать его на формы в любое удобное для вас место.

2) Предоставьте DataSource вашего DataGridView, например, в некотором свойстве вашего UserControl:

public BindingSource MyDataGridViewDataSource
{
   get 
   {
      return MyDataGridView.DataSource; // or you can skip 'get' if you don't need it
   }
   set
   {
      MyDataGridView.DataSource = value;
   }
}

3) ... или, если вам нужны имена столбцов, используйте свойство, которое получает / устанавливает DataTable (не забудьте сначала заполнить его http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx):

private DataTable _myDataTable = new DataTable();
public DataTable MyDataTable
{
  get
  {
   return _myDataTable;
  }
  set
  {
   _myDataTable = value;
   BindingSource bs = new BindingSource();
   bindingSource1.DataSource = value;
   MyDataGridView.DataSource = bs;

   // 4) fill your labels somewhere here
   string tablename = value.TableName; 
   foreach (DataColumn col in value.Columns)
     Console.WriteLine("{0}\t{1}", col.ColumnName, col.DataType);
  }
}

Это не полное решение, но это место для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...