Это потому, что Salary
не входит в определение IPerson
вашего интерфейса.
Вы должны либо добавить Salary в свой IPerson
интерфейс и реализовать его в своем классе Employee
, либо изменить определение свойства MyList, как показано ниже;
SortableBindingList<Employee> MyList { get; set }
Редактировать после комментариев
Вы можете достичь своей цели, внедрив ITypedList
. Это не тривиальная задача. Поэтому я бы не советовал вам делать это, если вам не нужно.
Вы можете наследовать от SortableBindingList<IPerson>
и внедрять ITypedList
. Вам также нужно создать пользовательский PropertyDescriptor
, чтобы он заработал.
Вот хорошая статья на эту тему Виртуальные свойства , которую я только что нашел. (Эта статья является первым результатом поиска вместе ключевых слов ITypedList и PropertyDescriptor).
Надеюсь, эта помощь.