문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top