Los bienes Objeto de Cuadrícula errores en la selección de cuadro combinado, pero bueno cuando combobox desplaza o se hace doble clic

StackOverflow https://stackoverflow.com/questions/113644

  •  02-07-2019
  •  | 
  •  

Pregunta

Tengo una Cuadrícula de propiedades en C#, cargando un 'PropertyAdapter' objeto (un básico envoltura alrededor de uno de mis objetos de visualización de las propiedades relevantes con la etiqueta correspondiente)

Tengo un TypeConverter en una de las propiedades (Tipo de datos, que devuelve una enumeración de posibles valores) como quiero límite de los valores disponibles para la cuadrícula de propiedades a Decimales y Enteros, con los 2 métodos de la siguiente manera

public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
{
    return true;
}

public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{
    return new StandardValuesCollection(new List<Constants.DataTypes>() { Constants.DataTypes.Decimal, Constants.DataTypes.Integer });
}

Esto está mostrando como yo lo quiero en la cuadrícula de propiedades, y cuando hago doble clic en el campo de la propiedad en la cuadrícula de propiedades, felizmente cambia entre Enteros y Decimales.Al igual que puedo utilizar la rueda del ratón para desplazarse por las opciones en la propiedad presentada del combobox.

Si yo sin embargo la utilización de la propiedad como un campo de Cuadro Combinado y seleccione un valor de la lista desplegable, me sale el estándar de la cuadrícula de propiedades cuadro de error con el error:

El objeto de tipo 'System.La cadena de' no se puede se convierten al tipo 'Pelion.PM3.Utils.Constantes+Tipos De Datos'.

Estoy asumiendo que se puede utilizar el Convertidor de reemplazos en el Tipo de convertidor para atrapar a estos y convertirlos en una Enumeración de tipos de datos, pero, ¿por qué la cuadrícula de propiedades fallar cuando yo seleccione de la lista desplegable en lugar de hacer doble clic o 'mouseewheeling' en el desplegable?

¿Fue útil?

Solución

Cuando está seleccionado en el cuadro combinado desplegable, el valor es devuelto como una cadena de texto.No estoy seguro de por qué es, pero he visto en suceder antes.Creo que, básicamente, haga doble clic o el desplazamiento de la rueda del ratón cambios de valores de el valor de la colección, mientras que la selección de la lista desplegable es similar a la edición de el valor de campo como una cadena.Entonces, usted tiene el convertir el valor de una cadena con el valor de enumeración.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top