protected override void LoadControlState(object savedState) { if (savedState != null) { Pair p = savedState as Pair; if (p != null) { base.LoadControlState(p.First); AddressState state = p.Second as AddressState; if (state != null) { _address = state.Address; _showUserSaved = state.ShowUserSaved; _showDescription = state.ShowDescription; _hasChanged = state.HasChanged; Settings = state.Settings; } } else { if (savedState is AddressState) { AddressState state = (AddressState) savedState; _address = state.Address; _showUserSaved = state.ShowUserSaved; _showDescription = state.ShowDescription; _hasChanged = state.HasChanged; Settings = state.Settings; } else base.LoadControlState(savedState); } } }
protected override object SaveControlState() { object obj = base.SaveControlState(); if (_address != null) { AddressState state = new AddressState {Address = (AddressInfo) _address, ShowUserSaved = _showUserSaved, ShowDescription = _showDescription, HasChanged = _hasChanged, Settings = _settings}; if (obj != null) return new Pair(obj, state); return (state); } return obj; }