private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { try { if (e.NewItems != null && e.Action == NotifyCollectionChangedAction.Add) { foreach (RevitItemMapper item in e.NewItems) { int index = rvtSheetData.ItemMaps.IndexOf(item); Guid itemMapId = Guid.NewGuid(); this.RvtSheetData.ItemMaps[index].ItemId = itemMapId; bool dbUpdated = SheetDataWriter.ChangeReplaceItem(rvtSheetData.ItemMaps[index], CommandType.INSERT); } } if (e.OldItems != null && e.Action == NotifyCollectionChangedAction.Remove) { foreach (RevitItemMapper item in e.OldItems) { bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.DELETE); } } } catch (Exception ex) { string message = ex.Message; } }
private void dataGridItem_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { DataGridRow row = e.Row; if (null != row) { RevitItemMapper item = row.Item as RevitItemMapper; string propertyName = e.Column.Header.ToString(); switch (propertyName) { case "Source Value": TextBox sourceTextBox = e.EditingElement as TextBox; if (null != sourceTextBox) { var itemFound = from itemMap in rvtSheetData.ItemMaps where itemMap.SourceValue == sourceTextBox.Text && itemMap.ItemType == item.ItemType && itemMap.ItemId != item.ItemId select item; if (itemFound.Count() > 0) { MessageBoxResult msgResult = MessageBox.Show("[" + sourceTextBox.Text + "] Item already exists in the list. \nPlease enter a different value.", "Existing Value", MessageBoxButton.OK, MessageBoxImage.Information); if (msgResult == MessageBoxResult.OK) { e.Cancel = true; } } else { item.SourceValue = sourceTextBox.Text; bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.UPDATE); } } break; case "Target Value": TextBox targetTextBox = e.EditingElement as TextBox; if (null != targetTextBox) { item.TargetValue = targetTextBox.Text; bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.UPDATE); } break; } } } catch (Exception ex) { string message = ex.Message; } }
private void buttonAddItem_Click(object sender, RoutedEventArgs e) { try { if (null != comboBoxType.SelectedItem && null != comboBoxParameter.SelectedItem) { ItemMap itemMap = comboBoxType.SelectedItem as ItemMap; string parameter = comboBoxParameter.SelectedItem.ToString(); if (null != itemMap && !string.IsNullOrEmpty(parameter)) { string sampleSourceName = ""; double suffix = 0; if (dataGridItem.Items.Count > 0) { RevitItemMapper lastItem = dataGridItem.Items[dataGridItem.Items.Count - 1] as RevitItemMapper; sampleSourceName = lastItem.SourceValue.ToString(); if (DataGridUtils.GetSuffix(sampleSourceName, out suffix)) { sampleSourceName = sampleSourceName.Replace(suffix.ToString(), (suffix + 1).ToString()); } else { sampleSourceName += " " + (suffix + 1).ToString(); } } if (string.IsNullOrEmpty(sampleSourceName)) { sampleSourceName = "New Item 1"; } RevitItemMapper itemMapper = new RevitItemMapper(Guid.NewGuid(), itemMap.ItemMapType, parameter, sampleSourceName, ""); this.RvtSheetData.ItemMaps.Add(itemMapper); bool dbUpdated = SheetDataWriter.ChangeReplaceItem(itemMapper, CommandType.INSERT); } } } catch (Exception ex) { string message = ex.Message; } }
private void buttonDeleteItem_Click(object sender, RoutedEventArgs e) { try { if (null != dataGridItem.SelectedCells) { var selectedItems = from cell in dataGridItem.SelectedCells select cell.Item; if (selectedItems.Count() > 0) { List <RevitItemMapper> items = selectedItems.Cast <RevitItemMapper>().Distinct().ToList(); foreach (RevitItemMapper item in items) { this.RvtSheetData.ItemMaps.Remove(item); bool dbUpdated = SheetDataWriter.ChangeReplaceItem(item, CommandType.DELETE); } } } } catch (Exception ex) { string message = ex.Message; } }