Pergunta

O que é o mais breve e concisa maneira de adicionar manipuladores de eventos para elementos de interface do usuário em XAML por meio de um roteiro IronRuby? Assunção:. O código para adicionar o manipulador de eventos seria escrito no roteiro IronRuby eo código para manipular o evento seria no mesmo script IronRuby

Eu gostaria o equivalente ao seguinte código, mas em IronRuby. Manipulação de um evento button1 simples clique.

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!");
    }
}
Foi útil?

Solução

Tanto quanto eu sei, eventos .NET são expostos como métodos tomando blocos em IronRuby. Assim, você pode escrever:

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

Isto cobre outras opções.

Outras dicas

Você também pode usar adicionar para inscrever-se um evento se faz mais sentido para você.

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

# Subscribe
button1.click.add p

# Unsubscribe
button1.click.remove p
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top