Мы создаем приложение winforms. Мы хотим использовать пользовательский интерфейс Visual Studio для настройки привязок данных во время разработки. Под этим я подразумеваю, что мы хотим определить во время разработки, какой источник данных и свойство должны использовать текстовое поле, флажок или любой другой элемент управления.
Мы помещаем DataSet в форму. Этот набор данных будет заполнен во время выполнения.
Мы помещаем BindingSource в форму и устанавливаем его DataSource в DataSet.
Мы помещаем текстовое поле в форму, переходим в свойства, открываем раздел «Данные» и щелкаем раскрывающийся список для свойства «Текст». Однако BindingSource, который мы помещаем в форму, не отображается как нечто, с чем мы можем связываться.
Мы хотим использовать BindingSource в Форме, а не на уровне проекта.
Все веб-сайты, на которые мы смотрели, используют либо BindingSource уровня проекта, либо создают Bindingsource во время выполнения кода, а затем создают привязки для элементов управления в коде.
Вопрос:
У нас есть правильное использование компонентов? (т.е. TextBox или другой элемент управления связан с Bindingsource, а BindingSource связан с DataSource)
Если это не правильно, каков правильный метод для привязки данных во время разработки.
Если проблема в том, что в наборе данных нет данных, определенных во время разработки, то мы попытались извлечь пользовательский класс из BindingSource и реализовать интерфейс IComponent, который будет использоваться в качестве источника данных для BindingSource. В этом случае, когда мы пытаемся удалить пользовательский компонент на форме, мы получаем следующее:
Ошибка при удалении пользовательского компонента
Однако, у нашего класса есть конструктор, который не принимает параметров, он также имеет конструктор, который принимает IContainer в качестве параметра:
public class CCSItemBase : BindingSource, IComponent
{
public CCSItemBase()
{
}
public CCSItemBase(IContainer Container):base(Container)
{
}
}