Pregunta

En Python, podría hacer builder.connect_signals(self). No parece que este método exista en C#, y después de mirar la documentación de GTKBuilder, Parece que Python es la excepción, en lugar de la regla. ¿Cómo lograría lo mismo en C#?

¿Fue útil?

Solución

En este momento, GTK.Builder no se implementa completamente en la versión actual de GTK# (2.12). Este hilo explica la situación actual. Entonces, una vez que se lanza GTK# 2.14, puede hacer:

builder.Autoconnect (this);

Mientras tanto, podrías usar Glade.xml, y luego convierta su código (y archivos glade) como se describe aquí: http://lists.ximian.com/pipermail/gtk-sharp-list/2008-october/009157.html

Otros consejos

Puede conectar sus señales usando el método Autoconnect, pero el método que representa una señal en C# debe estar en forma:

static void customMethod(object sender, EventArgs args);

Entonces, cada campo de clase que use en dicho método debe declararse como static. Te roba a crear otra instancia de tu clase.

Hay otra forma de conectar señales:

Builder builder = new Builder();
builder.AddFromFile("custom.glade");
Button button = (Button)builder.GetObject("closeButton");
button.Clicked += delegate {
    Application.Quit();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top