我正在使用
创建一个新的窗口弹出窗口PopupWindows.PaymentsSummary paymentsSummary = new PopupWindows.PaymentsSummary
paymentsSummary.ParentWindow = Window.GetWindow(this);
paymentsSummary.ShowDialog();
我的付款摘要窗口中的加载功能
private void Window_Loaded(object sender, RoutedEventArgs e)
{
basepage.payments.BindPaymentSummaryToDataGrid(uiActiveItems, basepage.user.terminal.TerminalId, true);
basepage.payments.BindPaymentSummaryToDataGrid(uiInActiveItems, basepage.user.terminal.TerminalId, false);
}
功能是
public void BindPaymentSummaryToDataGrid(DataGrid dgrid, int terminalId, bool isActivePayment)
{
BLPinNumber pins = new BLPinNumber();
string pinNumber = String.Empty;
long pinId = pins.getPinId(terminalId, ref pinNumber);
using (var dbEntities = new DatabaseAccess.Schema.Entities())
{
dgrid.DataContext = dbEntities.getPaymentRecordsByPinId((int)pinId, isActivePayment);
}
}
上面的代码在SQL Server中调用Stored Proc并返回一个对象
然而,当应用程序运行时,我在单击以显示以下行的弹出窗口时收到错误paymentsSummary.ShowDialog();
The ObjectContext instance has been disposed and can no longer be used for operations that require a connection.
我已经将其用于数据网格的XAML中的以下代码
DataGrid ItemsSource="{Binding}" Grid.Column="{Binding}"
如果我删除此代码,它可以工作,但数据不会显着加载。
所以我认为我需要做的是绑定datagrid onShowDialog方法。
我如何创建这个?
或者使用Entity框架是否有更好的方法,我习惯使用ASP.NET,如果使用DATAGRIDS看起来更容易,那就更容易了。
非常感谢
答案 0 :(得分:1)
你的问题是延迟加载!,你有两个选择: