Привязка к свойству элемента из другого связанного списка

У меня есть список Validation объектов - валидации.

public class Validation
{
       public IList<KeyValuePair<string, string>> Arguments
       { //(...) }
}

В форме есть список, связанный с списком проверок, и IBindingList привязаны к списку аргументов текущего списка Validation from validations. Я разрешаю пользователю редактировать выбранный объект проверки в диалоговом окне. Пользователь может изменять коллекцию Аргументов . После закрытия окна элементы, отображаемые в ListChanged, должны обновляться. Они этого не делают. Также, если после редактирования список Аргументов пуст, генерируется исключение IndexOutOfRangeException.

Как я могу заставить его работать?

c#,.net,data-binding,

1

Ответов: 1


0 принят

Существует несколько важных интерфейсов для привязки данных; в частности, DataGridViewкоторый имеет BindingList<T>событие, которое BindingList<T> : IList<T>может слушать.

Можно ли изменить конкретный список на DataGridView? Это должно дать вам большую часть этого бесплатно? Вам не нужно изменять тип возвращаемого значения, как IList<T>и DataGridViewтолько знать о фактическом объекте (его не волнует, что вы его вызываете DataGridView).

Другой прагматичный вариант - просто сбросить привязку данных к DataGridViewвозможностям - возможно, установите DataSourceзначение, nullа затем обратно:

object tmp = grid.DataSource;
grid.DataSource = null;
grid.DataSource = tmp; // low-tech data-source reset
C # ,. сеть, привязки данных,
Похожие вопросы