WPF:取消从已加载事件继续加载的窗口

本文关键字:加载 事件 继续 窗口 取消 WPF | 更新日期: 2023-09-27 17:49:27

如果我的else语句在加载的事件中执行,我想取消加载并且不显示窗口。请看下面的代码:

private void OpenTradesLoaded(object sender, RoutedEventArgs e)
{
    if (OpenTradesQuery.Count() > 0)
    {
        numOfrecords = OpenTradesQuery.Count();
        DataContext = this;
        foreach (var rowObj in OpenTradesQuery)
        {
            row = SourceTable.NewRow();
            SourceTable.Rows.Add(rowObj.TraderID, rowObj.ClientTradedDate, rowObj.ClientTradedTime, rowObj.ClientName, rowObj.CurrencyPair, rowObj.TradedAmount, rowObj.Action, rowObj.ExecutedRate);
        }
    }
    else
    {
        Mouse.OverrideCursor = System.Windows.Input.Cursors.Arrow;
        MeBox.Show("You have no open trades.", "", MessageBoxButton.OK, MessageBoxImage.Error);
        **//Cancel Loading here and do not show window**
    }
}    

WPF:取消从已加载事件继续加载的窗口

你可以使用这个属性:

    public bool ShouldLoad
    {
        get { return OpenTradesQuery.Count() > 0; }
    }

当你想打开时,询问是否应该打开:

    MyPage mypage = new MyPage();
    if (mypage.ShouldLoad)
    {
        mmypage.Show();
    }
    else
    {
        MeBox.Show("You have no open trades.", "", MessageBoxButton.OK, 
                   MessageBoxImage.Error);
    }

使用这段代码,您可以在加载前检查它是否真的应该加载。

我刚才用了

this.Close();

没问题。