Если вы имеете в виду через TreeViewNodeSorter
, то это должно быть IComparer
(короче говоря, оно предшествует дженерикам). Вы могли бы написать что-то, что подделает это, но это, вероятно, не стоит проблем ...
public static class ComparerWrapper
{ // extension method, so you can call someComparer.AsBasicComparer()
public static IComparer AsBasicComparer<T>(this IComparer<T> comparer)
{
return comparer as IComparer
?? new ComparerWrapper<T>(comparer);
}
}
sealed class ComparerWrapper<T> : IComparer
{
private readonly IComparer<T> inner;
public ComparerWrapper(IComparer<T> inner)
{
if (inner == null) throw new ArgumentNullException("inner");
this.inner = inner;
}
int IComparer.Compare(object x, object y)
{
return inner.Compare((T)x, (T)y);
}
}