IronRubyとXAML UIイベントの処理
-
10-07-2019 - |
質問
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
所属していません StackOverflow