【发布时间】:2010-11-14 21:25:42
【问题描述】:
在 WPF 中,您只能在窗口上调用 ShowDialog 一次。之后就完成了。
对我来说似乎有点蹩脚,但这是规则。如果你再次调用ShowDialog,你会得到这个异常:
在窗口关闭后无法设置可见性或调用 Show、ShowDialog 或 WindowInteropHelper.EnsureHandle
我想知道的是:我怎样才能获取Window(或UserControl)并检查它是否已经调用了ShowDialog(所以我知道new 之前有一个不同的再次拨打ShowDialog)。
类似这样的:
public void ShowListOfClients()
{
// | This is the method I want to write
// V
RefreshViewIfNeeded(_myWindowOrUserControlThatShowsAList);
FillWindowWithBusinessData(_myWindowOrUserControlThatShowsAList);
_myWindowOrUserControlThatShowsAList.ShowDialog();
}
注意:显然,在上面的示例中,每次输入方法时创建一个新的WindowOrUserControlThatShowsAList 会更容易。但请考虑这个问题,而不是愚蠢的例子。
【问题讨论】: