【发布时间】:2015-12-01 10:03:18
【问题描述】:
我有一个 WPF 应用程序,我在其中创建了一个表示自定义消息框的新窗口。它有两个按钮 - 是和否。
我从父表单调用它并希望收到答案,应该是"Yes" 或"No",或true 或false。
我正在尝试做与Servy 相同的操作:C# - Return variable from child window to parent window in WPF
但由于某种原因,我从来没有得到更新的值,所以isAllowed 总是假的。
这是我的父窗口中的代码:
bool isAllowed = false;
ChildMessageBox cmb = new ChildMessageBox();
cmb.Owner = this;
cmb.Allowed += value => isAllowed = value;
cmb.ShowDialog();
if (isAllowed) // it is always false
{
// do something here
}
然后在子窗口中我有:
public event Action<bool> Allowed;
public ChildMessageBox()
{
InitializeComponent();
}
private void no_button_Click(object sender, RoutedEventArgs e)
{
Allowed(false);
this.Close();
}
private void yes_button_Click(object sender, RoutedEventArgs e)
{
Allowed(true); // This is called when the Yes button is pressed
this.Close();
}
【问题讨论】: