Привязка данных к DataGridView (перечисления + коллекции) - PullRequest
1 голос
/ 04 мая 2010

Я немного помог с техникой, которую можно использовать для привязки данных. Прошло много времени с тех пор, как я использовал правильную привязку данных и хочу попробовать что-то сделать с DataGridView. Я пытаюсь настроить как можно больше, чтобы я мог просто спроектировать DatagridView через редактор форм, а затем использовать пользовательский класс, который предоставляет всю мою информацию.

Вот какая у меня информация:

public class Result
{
   public String Name { get; set; }
   public Boolean PK { get; set; }
   public MyEnum EnumValue { get; set; }
   public IList<ResultInfos> { get; set; }
}

public class ResultInfos { get; set; }
{
   public class Name { get; set; }
   public Int Value { get; set; }
   public override String ToString() { return Name + " : " Value.ToString(); }
}

Я могу без проблем связываться с простой информацией. Я хочу связать EnumValue с DataGridViewComboBoxColumn, но когда я устанавливаю DataPropertyName, я получаю исключения, говорящие, что значения перечисления недопустимы.

Затем следует коллекция ResultInfo. В настоящее время я не могу понять, как привязать к этому и отображать свои предметы, опять же, я действительно хочу, чтобы это был комбинированный список, где выбран первый элемент. У кого-нибудь есть предложения по поводу того, что я делаю не так?

Спасибо

1 Ответ

1 голос
/ 05 мая 2010

До вы привязываете свои данные к сетке, сначала установите DataGridViewComboBoxColumn.DataSource следующим образом ...

combo.DataSource = Enum.GetValues ​​(typeof (YourEnum));

Обычно я делаю это в конструкторе после InitializeComponent ().После настройки вы не получите исключение из столбца со списком при привязке ваших данных.Вы можете установить DataGridViewComboBoxColumn.DataPropertyName во время разработки как обычно.

Причина, по которой вы получаете исключение при связывании без этого шага, заключается в том, что ячейка пытается выбрать значение из списка, соответствующее значению элемента.Поскольку в списке нет значений ... выдается исключение.

...