代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

IronRuby和处理XAML UI事件

  •  1
  • BuddyJoe  · 技术社区  · 15 年前

    通过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!");
        }
    }
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   Pavel Minaev    15 年前

    据我所知,.NET事件被公开为使用IronRuby中的块的方法。所以,你可以写:

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

    This 包括其他选项。

        2
  •  1
  •   Shay Friedman    15 年前

    如果事件对您更有意义,您还可以使用“添加”订阅事件。

    p = Proc.new do |sender, args| 
      MessageBox.show("Hello  World!")
    end
    
    # Subscribe
    button1.click.add p
    
    # Unsubscribe
    button1.click.remove p
    
    推荐文章