Red de conocimiento informático - Problemas con los teléfonos móviles - 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 usando la clasificación predeterminada de la colección (generalmente 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);

///

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

///

/// Matriz de atributos utilizada como filtro. Puede ser nulo.

///

/// Un que contiene este tipo Una descripción de propiedad del objeto representado por el especificador. El valor predeterminado es .

///

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 puede ordenarlo; 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.

string[] sortName = new string[] { "a","b","c","d" };

return tmpPDC.Sort(sortName);

//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 = s;

PropertyGrid1.PropertySort = PropertySort.Categorized;

}

cadena pública[] SetSortors()

{

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

}

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

/yangyuhang/blog/item/b2c8e3d3f88eb0dba9ec9add.html

.