Objective-c/cocoa ofrece una forma de enlace donde las propiedades de un control (es decir, texto en un cuadro de texto) pueden vincularse a la propiedad de un objeto. Estoy intentando duplicar esta funcionalidad en C# w/.Net 3.5.Enlace de datos a un objeto en C#
He creado la siguiente clase muy simple en los archivos MyClass.cs:
class MyClass
{
private string myName;
public string MyName
{
get
{
return myName;
}
set
{
myName = value;
}
}
public MyClass()
{
myName = "Allen";
}
}
También creé un sencillo formulario con 1 caja de texto y 1 botón. Inicié una instancia de Myclass dentro del código del formulario y creé el proyecto. Utilizando el Asistente de DataSource en Vs2008, seleccioné crear una fuente de datos basada en el objeto y seleccioné el ensamblaje MyClass. Esto creó una entidad de fuente de datos. Cambié el enlace de datos del cuadro de texto a esta fuente de datos; sin embargo, no se logró el resultado esperado (que el contenido del cuadro de texto fuera "allen"). Además, poner texto en el cuadro de texto no actualiza la propiedad del nombre del objeto.
Sé que me estoy perdiendo algo fundamental aquí. En algún momento tendré que vincular mi instancia de la clase MyClass que inicié dentro del código del formulario al cuadro de texto, pero eso no ha ocurrido. Todo lo que he visto en línea parece ignorar el uso de DataBinding con un objeto (o me falta la marca por completo), por lo que cualquier ayuda es muy apreciada.
Editar:
Utilizando lo que he aprendido por las respuestas, miré el código generado por Visual Studio, que tenía la siguiente:
this.myClassBindingSource.DataSource = typeof(BindingTest.MyClass);
Si comento que fuera y sustituir por:
this.myClassBindingSource.DataSource = new MyClass();
Me sale el comportamiento esperado. ¿Por qué es el código predeterminado generado por VS como es? Suponiendo que esto es más correcto que el método que funciona, ¿cómo debo modificar mi código para que funcione dentro de los límites de lo que VS generó?
El código predeterminado se maneja de esa manera para que en tiempo de diseño, todos los controles conozcan los diversos tipos de propiedades que estarán disponibles para el enlace de datos. Pero en tiempo de ejecución necesitas una instancia real. No elimine el código generado automáticamente, jsut establezca un nuevo valor en su formulario onload o soemthing –