CSL_Test__1.DataGridViewHandler.dv_CurrentCellDirtyStateChanged C# (CSharp) Метод

dv_CurrentCellDirtyStateChanged() публичный Метод

public dv_CurrentCellDirtyStateChanged ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
Результат void
        void dv_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            if (dv.IsCurrentCellDirty)
            {
                if (dv.CurrentCell.OwningColumn.Name.Equals("Save Structure"))
                    dv.CommitEdit(DataGridViewDataErrorContexts.Commit);
                else if (!dv.CurrentCell.ReadOnly)
                {
                    dv.CommitEdit(DataGridViewDataErrorContexts.Commit);

                    string[] information = new string[7];
                    DataGridViewCellCollection dc = dv.CurrentCell.OwningRow.Cells;
                    foreach (DataGridViewCell c in dc)
                    {
                        switch (c.OwningColumn.Name)
                        {
                            /* information
                             * 0: artist
                             * 1: album
                             * 2: release format
                             * 3: bitrate
                             * 4: year
                             * 5: physical format
                             * 6: bit format
                             * */
                            case "Artist":
                                information[0] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Album":
                                information[1] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Release Format":
                                information[2] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Bitrate":
                                information[3] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Year":
                                information[4] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Physical Format":
                                information[5] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            case "Bit Format":
                                information[6] = (c.Value.Equals(DBNull.Value)) ? "" : (string)c.Value;
                                break;
                            default:
                                break;
                        }
                    }

                    string newSavePath =  TorrentBuilder.RebuildCustomPath(information);
                    dv["Save Structure", dv.CurrentCell.OwningRow.Index].Value = newSavePath;
                }
            }
        }