2011-02-08 1 views
1

Я переопределен метод ApplySortCore для пользовательского BindingList так:Как определить свойство уровня класса для PropertyDescriptor для сортировки BindingList?

public void ApplySort(PropertyDescriptor prop, ListSortDirection direction) 
{ 
    ApplySortCore(prop, direction); 
} 
protected override void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction) 
{ 
    sortedList = new System.Collections.ArrayList(); 
    Type interfaceType = prop.PropertyType.GetInterface("IComparable"); 

    if (interfaceType != null) 
    { 
     sortPropertyValue = prop; 
     sortDirectionValue = direction; 

     unsortedList = new System.Collections.ArrayList(this.Count); 

     foreach (Object item in this.Items) 
     { 
      sortedList.Add(prop.GetValue(item)); 
      unsortedList.Add(item); 
     } 

     sortedList.Sort(); 
     isSortedValue = true; 

     OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1)); 
    } 
} 

Как можно определить уровень класса PropertyDescriptor (свойство класса InstanceName), чтобы вызвать это непосредственно следующим образом:

_filteredEntityTally.ApplySort(???? ,ListSortDirection.Ascending); 
+0

непосредственно вы имеете в виду вы хотите CREA т. е. метод расширения или что? –

+0

@Shekhar_Pro - Я просто хочу применить сортировку на BindingList. Мне нужно передать PropertyDescriptor, который определяет свойство для сортировки .. – wulfgarpro

ответ