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 に答える