/// <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(txtStateID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.State data = (DataAccess.NequeoCompany.Data.State)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 = "StateID DESC"; selectItem.ShowDialog(); // Has an item been selected. if (selectItem.SelectedRecord != null) { // Get the selected item. DataAccess.NequeoCompany.Data.State data = (DataAccess.NequeoCompany.Data.State)selectItem.SelectedRecord; // Assign the load item. dataAccess.OrderByClause = selectItem.OrderByClause; dataAccess.WhereClause = "StateID = " + data.StateID.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(txtStateID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.State data = (DataAccess.NequeoCompany.Data.State)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; } }
/// <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.State[] returnedDataList = (DataAccess.NequeoCompany.Data.State[])dataAccess.DataModel; DataAccess.NequeoCompany.Data.State 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. gridState.DataContext = data; // Enable the controls. EnableDisable(0); // Start the change (load) process. _loading = true; _addNew = false; // Set the list selected index values. _loading = false; }