我有Window
一个按钮,单击按钮打开NewWindow
。NewWindow
为空(为简单起见),NewWindowViewModel
对象为DataContext
。NewWindowViewModel
构造函数调用ExceptinMethod
可以有选择地引发异常的方法(例如)。我根本不想显示NewWindow
是否ExceptinMethod
抛出异常,例如,我想要显示一些MessageBox
“无法显示bla-bla ..的窗口”。
实现这一目标的最佳方法是什么?
窗户:
<Grid>
<Button Click="OpenNewWindow">Open new window</Button>
</Grid>
public partial class Window1
{
public Window1()
{
InitializeComponent();
}
private void OpenNewWindow(Object sender, RoutedEventArgs e)
{
var window = new NewWindow();
window.ShowDialog();
}
}
新窗户:
public NewWindow()
{
InitializeComponent();
DataContext = new NewWindowViewModel();
}
NewWindowViewModel:
public class NewWindowViewModel
{
public NewWindowViewModel()
{
ExceptinMethod();
}
private void ExceptinMethod()
{
// in fact optionally!
throw new Exception();
}
}
在您的示例中,只需按以下步骤更改您的代码
private void OpenNewWindow(Object sender, RoutedEventArgs e)
{
try
{
var window = new NewWindow();
window.ShowDialog();
}
catch(Exception)
{
MessageBos.Show("Constructor failed");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句