Почему я получаю исключение при связывании IList со списком? - PullRequest
1 голос
/ 20 сентября 2010

У меня есть следующие классы / интерфейсы. Я получаю ArgumentException, говорящий «Сложное связывание данных принимает в качестве источника данных либо IList, либо IListSource». Но я устанавливаю это для IList. Что я делаю не так?

public interface IOriginList : IList<IOriginEntry>
{
   ...
}

public class OriginList : Interfaces.IOriginList
{
   ...
}

// Binding code
IList<IOriginEntry> originList = new OriginList();
cboOrigin.DataSource = originList;

1 Ответ

1 голос
/ 20 сентября 2010

Я не верю, что вы можете связать универсальный IList <>, только не универсальный IList.

Попробуйте это:

cboOrigin.DataSource = originList.ToArray();


* Редактировать *

На самом деле, проблема может быть в том, что IList имеет тип интерфейса? Нигде IOriginEntry не установлен для конкретного объекта, и вы не можете связать элемент комбинированного списка с интерфейсом.

Вы также можете попробовать это:

public class OriginEntry {
    public string Name {get; set;}
}

public interface IOriginList : IList<OriginEntry> {
    ...
}

public class OriginList : Interfaces.IOriginList {
   ...
}

// Binding code
IList<IOriginEntry> originList = new OriginList();
cboOrigin.DataBindings.Add(new Binding("SelectedValue", originList, "Name"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...