窗口中有一个按钮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();
}
答案 0 :(得分:7)
您需要在显示新窗口之前订阅事件:
new_win.btn_OK.Click += new RoutedEventHandler(btn_OK_Click);
new_win.ShowDialog();
请记住,ShowDialog
方法是阻止的:在窗口关闭之前它不会返回,因此以下语句在此之前不会被执行。