Pregunta

¿Cuál es la forma más breve y concisa de agregar controladores de eventos a elementos de la interfaz de usuario en XAML a través de un script IronRuby? Supuesto: el código para agregar el controlador de eventos se escribiría en el script IronRuby y el código para manejar el evento estaría en el mismo script IronRuby.

Me gustaría el equivalente del siguiente código pero en IronRuby. Manejo de un simple botón1 evento de clic.

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        button1.Click += new RoutedEventHandler(button1_Click);
    }

    void button1_Click(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("Hello World!");
    }
}
¿Fue útil?

Solución

Hasta donde yo sé, los eventos .NET están expuestos como métodos que toman bloques en IronRuby. Entonces, puedes escribir:

button1.click do |sender, args|
    MessageBox.show("Hello World!")
end

Esto cubre otras opciones.

Otros consejos

También puede usar agregar para suscribir un evento si tiene más sentido para usted.

p = Proc.new do |sender, args| 
  MessageBox.show("Hello  World!")
end

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top