WPF中的事件处理

时间:2012-03-14 22:38:24

标签: c# wpf event-handling

窗口中有一个按钮btn_Edit。单击该按钮后,将打开一个新窗口(new_win),并在btn_OK上的按钮(new_win)上添加一个点击事件。 btn_OK_Click似乎不起作用,因为new_win没有关闭。问题在哪里?

    BC_edit new_win = new BC_edit();

    private void btn_Edit_Click(object sender, RoutedEventArgs e)
    {            
        new_win.Title = "a_title";
        new_win.ShowDialog();

        new_win.btn_OK.Click += new RoutedEventHandler(btn_OK_Click);            
    }

    private void btn_OK_Click(object sender, RoutedEventArgs e)
    {
        _MyCollection.Add(new MyData
        {
            Boundary = new_win.Title,
            Type = new_win.cmb_BC_edit_type.SelectedItem.ToString(),
            Option = new_win.cmb_BC_edit_options.SelectedItem.ToString()
        });

        new_win.Close();
    }

1 个答案:

答案 0 :(得分:7)

您需要在显示新窗口之前订阅事件:

    new_win.btn_OK.Click += new RoutedEventHandler(btn_OK_Click);
    new_win.ShowDialog();

请记住,ShowDialog方法是阻止的:在窗口关闭之前它不会返回,因此以下语句在此之前不会被执行。