Ваша проблема в том, что string
реализует IComparable<string>
, а DataRowView
- нет.
SelectionList<T>
имеет ограничение, что T
должен реализовывать IComparable<T>
, следовательно, ошибка.
public class SelectionList<T> : ObservableCollection<SelectionItem<T>> where T : IComparable<T>
{
// Code
}
Одним из решений было бы создание подкласса DataRowView и реализация IComparable
:
public class MyDataRowView : DataRowView, IComparable<DataRowView>{
int CompareTo(DataRowView other) {
//quick and dirty comparison, assume that GetHashCode is properly implemented
return this.GetHashCode() - (other ? other.GetHashCode() : 0);
}
}
Тогда SelectionList<MyDataRowView>
должен скомпилироваться нормально.