System.Xml.XmlDataDocument.OnRowChanged C# (CSharp) Méthode

OnRowChanged() private méthode

private OnRowChanged ( object sender, DataRowChangeEventArgs args ) : void
sender object
args DataRowChangeEventArgs
Résultat void
        private void OnRowChanged(object sender, DataRowChangeEventArgs args)
        {
            if (_ignoreDataSetEvents)
                return;

            _ignoreXmlEvents = true;
            bool wasFoliationEnabled = IsFoliationEnabled;
            IsFoliationEnabled = false;

            try
            {
                DataRow row = args.Row;
                XmlBoundElement rowElement = row.Element;
                // We should have an associated row-elem created when the DataRow was created (or at the load time)
                Debug.Assert(rowElement != null);

                switch (args.Action)
                {
                    case DataRowAction.Add:
                        OnAddRow(row);
                        break;

                    case DataRowAction.Delete:
                        OnDeleteRow(row, rowElement);
                        break;

                    case DataRowAction.Rollback:
                        switch (_rollbackState)
                        {
                            case DataRowState.Deleted:
                                OnUndeleteRow(row, rowElement);
                                UpdateAllColumns(row, rowElement);
                                break;

                            case DataRowState.Added:
                                rowElement.ParentNode.RemoveChild(rowElement);
                                break;

                            case DataRowState.Modified:
                                OnColumnValuesChanged(row, rowElement);
                                break;
                        }
                        break;

                    case DataRowAction.Change:
                        OnColumnValuesChanged(row, rowElement);
                        break;

                    case DataRowAction.Commit:
                        if (row.RowState == DataRowState.Detached)
                        {
                            //by now, all the descendent of the element that is not of this region should have been promoted already
                            rowElement.RemoveAll();
                        }
                        break;
                    default:
                        break;
                }
            }
            finally
            {
                IsFoliationEnabled = wasFoliationEnabled;
                _ignoreXmlEvents = false;
            }
        }
XmlDataDocument