C# WPF:取消从已加载事件继续加载的窗口
如果else语句在加载的事件中执行,我想取消加载,不显示窗口。请参阅下面的代码C# WPF:取消从已加载事件继续加载的窗口,c#,wpf,C#,Wpf,如果else语句在加载的事件中执行,我想取消加载,不显示窗口。请参阅下面的代码 private void OpenTradesLoaded(object sender, RoutedEventArgs e) { if (OpenTradesQuery.Count() > 0) { numOfrecords = OpenTradesQuery.Count(); DataContext = this; foreach (var
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**
}
}
我刚用过
this.Close();
工作正常。您可以使用此属性:
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);
}
使用此代码,您可以在加载之前检查它是否确实应该加载。为什么不在
OpenTradesQuery.Count()>0
时创建一个返回true
的公共方法,然后开始加载表单?