La Red de Conocimientos Pedagógicos - Currículum vitae - clasificación personalizada e implementación de botones [...] de propertyGrid, etc.

clasificación personalizada e implementación de botones [...] de propertyGrid, etc.

Entiendo tu primera pregunta, pero siento no haber entendido las dos últimas.

La primera pregunta es así

//

// Resumen:

// Ordena los miembros de una colección utilizando la clasificación predeterminada de la colección (normalmente orden alfabético).

public virtual PropertyDescriptorCollection Sort();

//

// Resumen:

// Utilice las System.Collections especificadas. IComparer ordena los miembros de esta colección.

public virtual PropertyDescriptorCollection Sort(IComparer comparer);

//

// Resumen:

// Para esta colección Clasificación de miembros . Primero se aplica el orden especificado, seguido de la clasificación predeterminada de esta colección, que suele ser el orden alfabético.

public virtual PropertyDescriptorCollection Sort(string[] nombres);

//

// Resumen:

// Para esta colección Clasificación de miembros en . Primero se aplica el orden especificado y luego se ordena utilizando el System.Collections.IComparer especificado.

public virtual PropertyDescriptorCollection Sort(string[] nombres, comparador IComparer);

/// lt; resumen

/// Devuelve este especificador de tipo A colección filtrada de descriptores de propiedades para el objeto representado.

/// lt;/summarygt;

/// lt;param name="attributes"gt;Matriz de atributos utilizada como filtro. Puede ser nulo. lt;/paramgt;

/// lt;returnsgt;

/// A lt;see cref="T:System.ComponentModel.PropertyDescriptorCollection"gt;lt;/seegt ; Contiene descripciones de propiedades del objeto representado por este especificador de tipo. El valor predeterminado es

/// lt;/returnsgt;

anulación pública PropertyDescriptorCollection GetProperties(Atributo[] atributos)

{

int i = 0;

//parameterList son los datos que se mostrarán y que se pasan desde el exterior.

PropertyDescriptor[] newProps = new PropertyDescriptor[parameterList.Count];

foreach (parámetro ConfigParameter en la lista de parámetros)

{

/ / Convierta ConfigParameter, su propio tipo definido, en tipo PropertyDescriptor:

newProps[i ] = new SystemOptionsPropertyDescriptor(parámetro, verdadero, atributos

}

); //Adquirió PropertyDescriptor[] newProps; ahora se puede ordenar; de lo contrario, se mostrará en el orden original de newProps;

//1. Regresar directamente

PropertyDescriptorCollection tmpPDC = new PropertyDescriptorCollection(newProps);

return tmpPDC;

//2. Orden alfabético predeterminado

PropertyDescriptorCollection tmpPDC = new PropertyDescriptorCollection(newProps);

return tmpPDC.Sort();

//3. El orden de la matriz: sortName es el orden de los atributos y el contenido es el nombre de cada atributo.

cadena[] sortName = nueva cadena[] { "a", "b", "c", "d" };

return tmpPDC.Sort(sortName); /p>

//4. Método de clasificación definido por las reglas del comparador

ParameterListComparer myComp = new ParameterListComparer(); //ParameterListComparer: IComparer

return tmpPDC.Sort(myComp) ;

//5. Primero la matriz, luego el comparador

return tmpPDC.Sort(sortName, myComp);

//Utilizo los métodos de datos que son ordenado antes de pasar: es decir, antes de llamar, ordene la lista de parámetros de datos en orden y luego 1. Regrese directamente.

}

// Para el método de clasificación de matrices, puede declarar un evento y el orden de implementación de los atributos se pasa desde el exterior:

cadena de delegado público[] SortEventHandler ();

clase pública CustomTypeDescriptorExtend: CustomTypeDescriptor

{

public SortEventHandler OnSort;

//. ..Otros Código

anulación pública PropertyDescriptorCollection GetProperties(Attribute[] atributos)

{

string[] sortName = OnSort();

PropertyDescriptorCollection tmpPDC = TypeDescriptor.GetProperties(typeof(CustomTypeDescriptorExtend), atributos);

return tmpPDC.Sort(sortName);

}

}

//Cuando se usa:

public MyMethod()

{

CustomTypeDescriptorExtend s = new CustomTypeDescriptorExtend(); > s. OnSort = nuevo SortEventHandler(SetSortors);

PropertyGrid1.SelectedObject =

PropertyGrid1.PropertySort = PropertySort.Categorized; >

cadena pública[] SetSortors()

{

return nueva cadena[] { "B", "A", "C" }; p> }

Por supuesto que esto no lo escribí yo, déjame darte el enlace original, jaja

/yangyuhang/blog/item/b2c8e3d3f88eb0dba9ec9add.html