IronRuby и обработка событий пользовательского интерфейса XAML - PullRequest
1 голос
/ 30 ноября 2009

Какой самый краткий и краткий способ добавления обработчиков событий в элементы пользовательского интерфейса в XAML с помощью сценария IronRuby? Предположение: код для добавления обработчика события будет написан в сценарии IronRuby, а код для обработки события будет в том же сценарии IronRuby.

Я бы хотел эквивалент следующего кода, но в IronRuby. Обработка простого события нажатия кнопки 1.

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!");
    }
}

Ответы [ 2 ]

2 голосов
/ 30 ноября 2009

Насколько я знаю, события .NET отображаются как методы, принимающие блоки в IronRuby. Итак, вы можете написать:

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

Это охватывает другие варианты.

1 голос
/ 01 декабря 2009

Вы также можете использовать добавить, чтобы подписаться на событие, если это имеет больше смысла для вас.

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
...