System.Data.DataView.OnRowChanged C# (CSharp) Метод

OnRowChanged() приватный Метод

private OnRowChanged ( object sender, DataRowChangeEventArgs args ) : void
sender object
args DataRowChangeEventArgs
Результат void
		private void OnRowChanged (object sender, DataRowChangeEventArgs args)
		{
			int oldIndex,newIndex;
			oldIndex = newIndex = -1;
			oldIndex = IndexOf (args.Row);
			UpdateIndex (true);
			newIndex = IndexOf (args.Row);

			/* ItemAdded */
			if (args.Action == DataRowAction.Add && oldIndex != newIndex)
				OnListChanged (new ListChangedEventArgs (ListChangedType.ItemAdded, newIndex, -1));

			/* ItemChanged or ItemDeleted */
			if (args.Action == DataRowAction.Change) {
				if (oldIndex != -1 && oldIndex == newIndex)
					OnListChanged (new ListChangedEventArgs (ListChangedType.ItemChanged, newIndex, -1));
				else if (oldIndex != newIndex) {
					if (newIndex < 0)
						OnListChanged (new ListChangedEventArgs (ListChangedType.ItemDeleted, newIndex, oldIndex));
					else
						OnListChanged (new ListChangedEventArgs (ListChangedType.ItemMoved, newIndex, oldIndex));
				}
			}
			
			/* Rollback - ItemAdded or ItemDeleted */
			if (args.Action == DataRowAction.Rollback) {
				if (oldIndex < 0 && newIndex > -1)
					OnListChanged (new ListChangedEventArgs (ListChangedType.ItemAdded, newIndex, -1));
				else if (oldIndex > -1 && newIndex < 0)
					OnListChanged (new ListChangedEventArgs (ListChangedType.ItemDeleted, newIndex, oldIndex));
				else if (oldIndex != -1 && oldIndex == newIndex)
					OnListChanged (new ListChangedEventArgs (ListChangedType.ItemChanged, newIndex, -1));
			}
		}