WPF中的事件处理

Shi*_*bli 1 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();
    }
Run Code Online (Sandbox Code Playgroud)

Tho*_*que 7

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

    new_win.btn_OK.Click += new RoutedEventHandler(btn_OK_Click);
    new_win.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

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