Я создаю новое всплывающее окно, используя
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);
}
}
Приведенный выше код вызывает Stored Proc в SQL Server и возвращает объект,
Однако, когда приложение запускается, я получаю ошибку при нажатии, чтобы показать всплывающее окно на следующей строке paymentSummary.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}"
Если я удаляю этот код, он работает, но данные не загружаются obvioulsy.
Так что я считаю, что мне нужно сделать, это связать метод данных с методом onShowDialog.
Как мне создать это?
Или есть лучший способ сделать это, используя платформу Entity, я привык к ASP.NET, где работа с DATAGRIDS кажется проще, если немного менее мощной.
Большое спасибо