아이언 루비 및 처리 XAML UI 이벤트
-
10-07-2019 - |
문제
Ironruby 스크립트를 통해 XAML의 UI 요소에 이벤트 처리기를 추가하는 가장 짧고 간결한 방법은 무엇입니까? 가정 : 이벤트 핸들러를 추가하는 코드는 Ironruby 스크립트로 작성되며 이벤트를 처리하려는 코드는 동일한 Ironruby 스크립트에 있습니다.
다음 코드와 동일하지만 Ironruby에 동등합니다. 간단한 버튼 처리 1 클릭 이벤트.
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