/// <summary> /// On load complete /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnLoad(object sender, EventArgs e) { // Get the data that has been returned. DataAccess.NequeoCompany.Data.InvoiceProducts[] returnedDataList = (DataAccess.NequeoCompany.Data.InvoiceProducts[])dataAccess.DataModel; DataAccess.NequeoCompany.Data.InvoiceProducts data = returnedDataList[0]; // Attach to the property changed event within the model data.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(data_PropertyChanged); SetChangePropertyState(false); // Assign the data to the data context. gridInvoiceProductDetails.DataContext = data; // Enable the controls. EnableDisable(0); // Load all list items. LoadListItems(); // Start the change (load) process. _loading = true; _addNew = false; // Set the list selected index values. ListSelectedIndex(data); _loading = false; }
/// <summary> /// Before update data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeUpdate(object sender, Custom.OperationArgs e) { // Get the binding source data BindingExpression bindingExpression = BindingOperations.GetBindingExpression(txtProductDetailsID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.InvoiceProducts data = (DataAccess.NequeoCompany.Data.InvoiceProducts)bindingExpression.DataItem; // If a previous operation was attempted while // the data was changed an not updated. if (_updateAttempt) { MessageBoxResult result = MessageBox.Show("Disregard the changes (all changes will be lost)?", "Update", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { e.Cancel = true; } } _updateAttempt = false; // Determine if the data has not change. if (!PropertyChanged) { e.Cancel = true; } // If cancel update then set property state. if (e.Cancel) { SetChangePropertyState(false); } }
/// <summary> /// Before load data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeLoad(object sender, Custom.OperationArgs e) { // Determine if the data has change. if (PropertyChanged) { // Indicate that the data has changed. MessageBox.Show("The data has changed, please update first", "Load", MessageBoxButton.OK); _updateAttempt = true; e.Cancel = true; } else { // If in Add new state if (_addNew) { // Indicate that the data has changed. MessageBoxResult result = MessageBox.Show("Insert the changes before loading. Disregard the changes (all changes will be lost)?", "Load", MessageBoxButton.YesNo); if (result != MessageBoxResult.Yes) { e.Cancel = true; } } // If loading should take place. if (!e.Cancel) { // Show the selection form Nequeo.Wpf.DataGridWindow selectItem = new DataGridWindow(); selectItem.ConnectionTypeModel = dataAccess.ConnectionTypeModel; selectItem.LoadOnStart = true; selectItem.MaxRecords = 50; selectItem.OrderByClause = "InvoiceProductID DESC"; selectItem.WhereClause = "InvoiceID = " + _invoiceID.ToString(); selectItem.ShowDialog(); // Has an item been selected. if (selectItem.SelectedRecord != null) { // Get the selected item. DataAccess.NequeoCompany.Data.InvoiceProducts data = (DataAccess.NequeoCompany.Data.InvoiceProducts)selectItem.SelectedRecord; // Assign the load item. dataAccess.OrderByClause = selectItem.OrderByClause; dataAccess.WhereClause = "InvoiceProductID = " + data.InvoiceProductID.ToString(); } else { e.Cancel = true; } } } }
/// <summary> /// Before insert data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeInsert(object sender, Custom.OperationArgs e) { // Get the binding source data BindingExpression bindingExpression = BindingOperations.GetBindingExpression(txtProductDetailsID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.InvoiceProducts data = (DataAccess.NequeoCompany.Data.InvoiceProducts)bindingExpression.DataItem; dataAccess.DataModel = data; MessageBoxResult result = MessageBox.Show("Are you sure you wish to insert this record?", "Insert", MessageBoxButton.YesNo); if (result != MessageBoxResult.Yes) { e.Cancel = true; } }