1

通过 IronRuby 脚本向 XAML 中的 UI 元素添加事件处理程序的最简洁的方法是什么?假设:添加事件处理程序的代码将在 IronRuby 脚本中编写,而处理事件的代码将在同一个 IronRuby 脚本中。

我想要以下代码的等价物,但在 IronRuby 中。处理一个简单的 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!");
    }
}
4

2 回答 2

2

据我所知,.NET 事件在 IronRuby 中作为获取块的方法公开。所以,你可以写:

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

涵盖了其他选项。

于 2009-11-30T19:32:30.547 回答
1

如果对您更有意义,您也可以使用 add 订阅事件。

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
于 2009-12-01T07:48:33.447 回答