我正在使用WPF中的对话框。我想实现一个DialogCenter,它负责更改活动窗口并显示我的自定义对话框。
这是我的DialogCenter:
internal static class DialogCenter<T> where T : IDialog
{
public enum DialogResult{
OK, Cancel
}
public static DialogResult ShowDialog<T>()
{
...
}
}
和:
interface IDialog
{
UserControl GetControl();
....
}
ShowDialog将获得一个UserControl,然后将其放置在正确的位置。
将响应发送回调用窗口的唯一方法是实现一个事件,然后在UserControl中完成我的工作后再调用该事件(我知道的唯一方法)。
因此,每当我想调用DialogWindow时,我都必须做这样的工作:
var A = DialogCenter<SomeDialog>.ShowDialog();
A.OnDialogComplete+= AnEventHandler();
这将改变我的执行流程,我必须照顾好它。执行流程会更加复杂。
在WindowsForm中,我们有ShowDialog方法,该方法将阻止当前线程,直到返回DialogResult。
如何实现这种方法?