IronRuby和处理XAML UI活动(IronRuby and Handling XAML UI

2019-09-30 06:34发布

这是什么通过IronRuby的脚本添加事件处理在XAML UI元素的最简明扼要的方式吗? 假设:代码添加事件处理程序将被写在IronRuby的脚本代码来处理该事件将是相同的IronRuby脚本。

我想下面的代码,但在IronRuby中的等价物。 处理一个简单的Button1的Click事件。

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

Answer 1:

所以,据我所知,.NET事件暴露服用块IronRuby的方法。 所以,你可以这样写:

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

这涵盖了其他选项。



Answer 2:

您还可以使用添加,如果它更有意义,你订阅的事件。

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p


文章来源: IronRuby and Handling XAML UI Events