Domanda

Qual è il modo più breve e conciso di aggiungere gestori di eventi agli elementi dell'interfaccia utente in XAML tramite uno script IronRuby? Presupposto: il codice per aggiungere il gestore eventi sarebbe scritto nello script IronRuby e il codice per gestire l'evento sarebbe nello stesso script IronRuby.

Vorrei l'equivalente del seguente codice ma in IronRuby. Gestire un semplice evento click button1.

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!");
    }
}
È stato utile?

Soluzione

Per quanto ne so, gli eventi .NET sono esposti come metodi che prendono blocchi in IronRuby. Quindi, puoi scrivere:

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

Questo copre altre opzioni.

Altri suggerimenti

Puoi anche usare aggiungi per iscriverti a un evento se per te ha più senso.

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top