6 votos

¿Cómo convertir un IField de No Editable a Editable?

Así que he convertido mi ITable en un DataGridview editable de este post enlace .

Ahora quiero configurar algunas de las columnas para que no sean editables. Así que lo que puedo hacer es establecer inicialmente mi IFieldEdit.Editable_2 a falso, y la columna sería de sólo lectura.

Sin embargo, cuando intenté hacerlo y rellenar los valores en mi campo inicialmente, me lanza una excepción por no ser editable.

Así que me preguntaba si alguien sabe si puedo establecer temporalmente el campo a editable y luego después de setValue, establecer el editable a falso de nuevo.

Tengo esto pero no funciona:

bool fieldEditable = featureClass.Fields.get_Field(x).Editable;

IFieldEdit fieldEdit = (IFieldEdit)featureClass.Fields.get_Field(x);
fieldEdit.Editable_2 = true;

featureBuffer.set_Value(x, cegObject.GetPropertyValue(featureClass.Fields.get_Field(x).Name));

fieldEdit.Editable_2 = fieldEditable

Sin embargo, el ajuste a true, no funciona. ¿Hay alguna forma de evitarlo? ¿O es totalmente inútil porque una vez que hago un campo editable, ni siquiera puedo rellenar un valor? Pero estoy seguro de que no lo estoy haciendo bien, por favor ayuda.

Gracias y saludos, Kevin

12voto

Jon Galloway Puntos 28243

Si crea un campo que no es editable a través de ArcObjects o algún otro método, no podrá editarlo (nunca) sin cambiar el esquema, lo que requiere un bloqueo.

No estoy seguro de si se pueden revertir los campos no editables a editables a través de ArcObjects.

Si le preocupa que un determinado usuario edite un campo a mano, simplemente desactive esa columna en su UI y mantenga el campo editable si necesita insertar valores (calculados).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X