Добрый день. Передо мной стоит такая задача:
DataSet содержит в себе 4 таблицы. Одна из них установлена источником для DataGridView, расположенного на форме.
Так же на форме находится объект PropertyGrid.
Нужно, чтобы PropertyGrid отображал (отсортировав по группам) поля выбранной в данный момент записи. Причем при редактировании их в PropertyGrid, автоматически происходили изменения и в DataGridView. Т.е. Нужно установить связь.
Решил пойти по такому пути: создать свой класс, объект которого будет содержать в себе свойства, такие же как и поля DataGridView. Кроме того, нужно в него добавить коллекцию, аналогичную DataBindings, имеющуюся в классах, наследуемых от класса Control. Мой класс — не наследуется от класса Control.
Прочел, что мне нужно реализовать интерфейс IBindableComponent, но никак не могу разобраться с ним...
Пытался реализовать в обход, без применения этого интерфейса, не вышло...
Пожалуйста, помогите разобраться с реализацией интерфейса IBindableComponent.
Если задать объекту PropertyGrid ссылку на созданный объект моего класса, то выглядит это так:
03.03.08 18:41: Перенесено модератором из '.NET' — AndrewVK
Касательно того, как я пытался решить вопрос в обход:
В своем классе разместил такой фрагмент кода:
/// <summary>
/// Здесь размещаю свою коллекцию связей
/// </summary>
public List<Binding> DataSource = new List<Binding>();
Далее решил проверить, будет ли работать: на событие клика мышки повесил код:
//создаю объект моего класса
public UserLOTPP user = new UserLOTPP();
...
private void toolStripButton1_Click(object sender, EventArgs e)
{
// связываю объект PropertyGrid с моим объектом
propertyGrid1.SelectedObject = user;
//Добавляю объект связи
user.DataSource.Add( new Binding("CompanyName", textBox1, "Text", true,
DataSourceUpdateMode.OnPropertyChanged));
propertyGrid1.Refresh();
}