void LoadPageControlState (object data)
{
_savedControlState = null;
if (data == null) return;
Pair statePair = (Pair)data;
_savedControlState = (object[]) statePair.First;
object[] adapterState = (object[]) statePair.Second;
if (requireStateControls == null) return;
int min = Math.Min (requireStateControls.Count, _savedControlState != null ? _savedControlState.Length : requireStateControls.Count);
for (int n=0; n < min; n++) {
Control ctl = (Control) requireStateControls [n];
ctl.LoadControlState (_savedControlState != null ? _savedControlState [n] : null);
if (ctl.Adapter != null)
ctl.Adapter.LoadAdapterControlState (adapterState != null ? adapterState [n] : null);
}
}