关于给定条件的构造函数关闭窗口

时间:2015-02-03 20:40:20

标签: c# wpf multithreading

我有一个像我这样的ViewModel的构造函数:

    [ImportingConstructor]
    public MyViewModel(IMyViewModel view)
        : base(view)
    {
         if (tester.TestConnection(port, ref _errorMessages))
        {
            MethodThatBeginsAsync();
        }
        else
        {
            MessageBox.Show("Could not connect: " + _errorMessages);
            _abortCommand.Execute(null);
        }
    }

如果检查失败,我在尝试关闭相应的窗口时收到CompositionException的错误消息;如何在窗口打开前关闭窗口?

即。相当于:

_dialogResult = false;
ViewCore.close(); 

1 个答案:

答案 0 :(得分:1)

  

“如何在窗口打开前关闭窗口?”

不要打开它。

这里没有足够的上下文来提供比这更好的答案。你想关闭什么窗口?消息框的父窗口是什么?什么行抛出CompositionException?

(请注意,直接从ViewModel显示消息框已经是一个非常值得怀疑的做法,类似于(imo)显示来自不显示其他UI的库的消息框。)