IronRuby e gestione degli eventi dell'interfaccia utente XAML
-
10-07-2019 - |
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!");
}
}
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