WPF / MVVM - GUI更新后是否有任何事件被触发

时间:2013-12-26 10:39:03

标签: c# wpf user-interface mvvm

在我的应用程序中,我曾经在Richtextbox中添加了大量文本。这需要很多时间,所以我添加了一个进度条。一旦GUI更新,我需要关闭它。更新GUI后是否有任何要捕获的内容。 我已经尝试过App.Current.MainWindow.IsLoaded == true,但似乎即使gui没有更新,但主窗口的MainWindow.IsLoaded属性为true。

以下是相同的代码。

   private void OnWorkerMethodstart()
    {
        pbw = new ProgressBarWindow();
        pbw.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
        new Action(
        delegate()
        {
            pbw.ShowDialog();
        }
        ));
    }

private void OnWorkerMethodStart()
    {
        ThreadStart tStart = new ThreadStart(OnWorkerMethodstart);
        t = new Thread(tStart);
        t.SetApartmentState(ApartmentState.STA);
        t.Start();
        this.OpenW();

        BackgroundWorker _BackgroundWorker1 = new BackgroundWorker();
        _BackgroundWorker1.DoWork += new DoWorkEventHandler(
        delegate(object o, DoWorkEventArgs args)
        {
            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
                new Action(
                delegate()
                {
                    DateTime da = DateTime.Now.AddMinutes(30);
                    MainWindow mw;
                    while (DateTime.Now != da)
                    {

                        mw = new MainWindow();
                        //if (mw.Editor.Workflow.Steps.Count > 1)
                        if (App.Current.MainWindow.IsLoaded == true)
                        {
                            t.Abort();
                            break;
                        }
                        else
                        {
                            //Thread.Sleep(1000);
                        }
                        mw = null;
                    }
                }
                ));
        });

        _BackgroundWorker1.RunWorkerAsync();


    }

0 个答案:

没有答案