Asignar valores a propiedades "custom" en tiempo de diseño

21/11/2007 - 12:10 por José Luis | Informe spam
Hola a todos.

Estamos programando una serie de controles que realmente no son más que
modificaciones de controles ya existentes; por ejemplo, los para los textbox
tenemos una clase CustomTextBox.

A esta clase quiero añadirla una propiedad de tipo IObjeto y quiero, en
tiempo de diseño, poder elegir de entre todos los objetos IObjeto que tengo
en mi formulario.

La propiedad la defino así:
public class CustomTextBox: TextBox{

[...]

[Category("Datos"), AttributeProvider(typeof(IObjeto)),ListBindable(true),
TypeConverter(typeof(IObjeto))]
public IObjeto ObjetoEnlazado
{
get
{
}
set
{
}
}
[...]
}


Cuando intento asignarle un objeto, se me abre un combo para asignarle un
origen de datos dataset, pero no es lo que yo quiero.

Mi siguiente paso, una vez ésto funcione, es crear una nueva propiedad ,
CampoEnlazado, que me de a a elegir de entre una de las propiedades públicas
que exponga el objeto que asigne a la propiedad ObjetoEnlazado, pero no soy
capaz de resolver el primero de los problemas.


¿Qué estoy haciendo mal?¿cómo debo tratar el problema?


Gracias
 

Leer las respuestas

#1 J Ramon A
22/11/2007 - 10:41 | Informe spam
Segun tu codigo, en el combo de la propiedad en tiemop diseño deberian
salirte todos los objetos del formuario que implementen IObjeto, acabo de
probarlo con textbox y una interfaz creada por mi y solo me saca los objetos
que la implementan.

En cuanto a la 2º cuestion, puedes usar reflexion para obtener propiedades,
metodos, etc... de un objeto

//////////////////////////////////////////////////////////////////////////

"José Luis" escribió en el mensaje de
noticias:
Hola a todos.

Estamos programando una serie de controles que realmente no son más que
modificaciones de controles ya existentes; por ejemplo, los para los
textbox tenemos una clase CustomTextBox.

A esta clase quiero añadirla una propiedad de tipo IObjeto y quiero, en
tiempo de diseño, poder elegir de entre todos los objetos IObjeto que
tengo en mi formulario.

La propiedad la defino así:
public class CustomTextBox: TextBox{

[...]

[Category("Datos"), AttributeProvider(typeof(IObjeto)),ListBindable(true),
TypeConverter(typeof(IObjeto))]
public IObjeto ObjetoEnlazado
{
get
{
}
set
{
}
}
[...]
}


Cuando intento asignarle un objeto, se me abre un combo para asignarle un
origen de datos dataset, pero no es lo que yo quiero.

Mi siguiente paso, una vez ésto funcione, es crear una nueva propiedad ,
CampoEnlazado, que me de a a elegir de entre una de las propiedades
públicas que exponga el objeto que asigne a la propiedad ObjetoEnlazado,
pero no soy capaz de resolver el primero de los problemas.


¿Qué estoy haciendo mal?¿cómo debo tratar el problema?


Gracias

Preguntas similares