如果其DataContext类构造函数抛出异常,则不显示窗口的最佳方法

蒙斯特

我有Window一个按钮,单击按钮打开NewWindowNewWindow为空(为简单起见),NewWindowViewModel对象为DataContextNewWindowViewModel构造函数调用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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果其DataContext类构造函数抛出异常,则不显示窗口的最佳方法

来自分类Dev

Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

来自分类Dev

Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

来自分类Dev

显示:如果日期过期则不显示

来自分类Dev

如果我从构造函数抛出异常,构造函数中的已分配内存会发生什么?

来自分类Dev

在类中抛出异常的最佳方法是什么?

来自分类Dev

如果没有图像则不显示

来自分类Dev

如果缺少DeliveryTime,则不显示ScheduledToastNotification

来自分类Dev

如果为空,则不显示(JS)

来自分类Dev

C ++继承类不显示默认构造函数

来自分类Dev

如果子元素和父元素具有相同的类,则不显示任何内容

来自分类Dev

无法实例化 HeroController 类;构造函数抛出异常;嵌套异常是 java.lang.NullPointerException

来自分类Dev

是否有可能在派生类构造函数中捕获从基类构造函数抛出的异常

来自分类Dev

如果字段为空-显示,否则不显示

来自分类Dev

调用超类构造函数和方法时的异常处理

来自分类Dev

如果<input>为空,则不显示#loading

来自分类Dev

创新设置:如果未选中,则不显示选项

来自分类Dev

如果未设置变量,则不显示链接

来自分类Dev

如果IS_NULL为false,则不显示任何内容

来自分类Dev

Laravel:如果不存在关系则不显示错误

来自分类Dev

如果是搜索页面,则不显示循环

来自分类Dev

Inno设置:如果未选中,则不显示选项

来自分类Dev

如果mysql中没有记录,则不显示

来自分类Dev

如果数组不返回结果,则不显示结果消息

来自分类Dev

如果不是localhost,则不显示OData批注

来自分类Dev

如果content为null,则不显示div

来自分类Dev

C#-创建一个其构造函数采用通用参数的类,导致转换异常

来自分类Dev

如果您的类包含许多方法/构造函数,那么只想填充其属性,是否最好创建一个新的类?

来自分类Dev

跨DLL边界的构造方法抛出异常

Related 相关文章

  1. 1

    如果其DataContext类构造函数抛出异常,则不显示窗口的最佳方法

  2. 2

    Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

  3. 3

    Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

  4. 4

    显示:如果日期过期则不显示

  5. 5

    如果我从构造函数抛出异常,构造函数中的已分配内存会发生什么?

  6. 6

    在类中抛出异常的最佳方法是什么?

  7. 7

    如果没有图像则不显示

  8. 8

    如果缺少DeliveryTime,则不显示ScheduledToastNotification

  9. 9

    如果为空,则不显示(JS)

  10. 10

    C ++继承类不显示默认构造函数

  11. 11

    如果子元素和父元素具有相同的类,则不显示任何内容

  12. 12

    无法实例化 HeroController 类;构造函数抛出异常;嵌套异常是 java.lang.NullPointerException

  13. 13

    是否有可能在派生类构造函数中捕获从基类构造函数抛出的异常

  14. 14

    如果字段为空-显示,否则不显示

  15. 15

    调用超类构造函数和方法时的异常处理

  16. 16

    如果<input>为空,则不显示#loading

  17. 17

    创新设置:如果未选中,则不显示选项

  18. 18

    如果未设置变量,则不显示链接

  19. 19

    如果IS_NULL为false,则不显示任何内容

  20. 20

    Laravel:如果不存在关系则不显示错误

  21. 21

    如果是搜索页面,则不显示循环

  22. 22

    Inno设置:如果未选中,则不显示选项

  23. 23

    如果mysql中没有记录,则不显示

  24. 24

    如果数组不返回结果,则不显示结果消息

  25. 25

    如果不是localhost,则不显示OData批注

  26. 26

    如果content为null,则不显示div

  27. 27

    C#-创建一个其构造函数采用通用参数的类,导致转换异常

  28. 28

    如果您的类包含许多方法/构造函数,那么只想填充其属性,是否最好创建一个新的类?

  29. 29

    跨DLL边界的构造方法抛出异常

热门标签

归档