Question

Quel est le moyen le plus bref et le plus concis d’ajouter des gestionnaires d’événements aux éléments d’interface utilisateur en XAML via un script IronRuby? Hypothèse: le code pour ajouter le gestionnaire d’événements serait écrit dans le script IronRuby et le code pour gérer l’événement figurerait dans le même script IronRuby.

Je voudrais l'équivalent du code suivant mais dans IronRuby. Gestion d’un événement simple bouton1 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!");
    }
}
Était-ce utile?

La solution

Pour autant que je sache, les événements .NET sont exposés en tant que méthodes prenant des blocs dans IronRuby. Donc, vous pouvez écrire:

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

Ceci couvre d'autres options.

Autres conseils

Vous pouvez également utiliser add pour souscrire un événement si cela vous semble plus logique.

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top