質問

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!");
    }
}
役に立ちましたか?

解決

私が知る限り、.NETイベントはIronRubyでブロックを取得するメソッドとして公開されています。だから、あなたは書くことができます:

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

これは他のオプションをカバーしています。

他のヒント

さらに意味があれば、addを使用してイベントをサブスクライブすることもできます。

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top