Esempio n. 1
0
 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);
                }
            }
        }