private void PlotItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { Util.DataGridItemPropertyChanged( dataGrid, Plots, sender as PlotItem, e.PropertyName, delegate(int index) { UpdateItems(true, index); }, delegate(int next_index) { ResetAt(new PlotItem(), next_index); }, delegate(PlotItem plot) { m_colorIds.Push(plot.ColorId); }, delegate(int index) { UpdateItems(false); }); }
private void GeometryItem_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { Util.DataGridItemPropertyChanged( dataGrid, Geometries, sender as GeometryItem, e.PropertyName, delegate(int index) { UpdateItems(true, index); }, delegate(int next_index) { ResetAt(new GeometryItem(), next_index); }, delegate(GeometryItem geometry) { m_colorIds.Push(geometry.ColorId); }, delegate(int index) { UpdateItems(false); }); }
private void GeometryItem_NameChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { //e.PropertyName == "Name" GeometryItem geometry = sender as GeometryItem; int index = Geometries.IndexOf(geometry); if (index < 0 || index >= dataGrid.Items.Count) { return; } if (geometry.Name == null || geometry.Name == "") { if (index < dataGrid.Items.Count - 1) { m_intsPool.Push(geometry.ColorId); Geometries.RemoveAt(index); UpdateItems(true); if (index > 0) { Util.SelectDataGridItem(dataGrid, index - 1); } } } else { UpdateItems(true, index); int next_index = index + 1; // insert new empty row if needed if (next_index == Geometries.Count) { ResetAt(new GeometryItem(-1, m_colors), next_index); } // select current row, move to next one is automatic Util.SelectDataGridItem(dataGrid, index); } }
private void GeometryItem_NameChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { //e.PropertyName == "Name" GeometryItem geometry = (GeometryItem)sender; int index = Geometries.IndexOf(geometry); if (index < 0 || index >= dataGrid.Items.Count) { return; } if (geometry.Name == null || geometry.Name == "") { if (index < dataGrid.Items.Count - 1) { m_intsPool.Push(geometry.ColorId); Geometries.RemoveAt(index); UpdateItems(); } } else { UpdateItems(index); // insert new empty row int next_index = index + 1; if (next_index == Geometries.Count) { ResetAt(new GeometryItem(-1, m_colors), index + 1); SelectAt(index + 1, true); } else { SelectAt(index + 1); } } }