I have a dialog with 3 Binding Sources on it (for combo boxes) and a main binding source for the actual data.
The dialog is divided into 3 sections by combo box: Country, State, City. Changing the country selection will repopulate the State combo, which in turn will repopulate the City combo and the main data-binding, which is bound to the City type. Therefore, the bound type for the loose controls is of type City, and the exact city is determined by the combination of the Country, State and City combo boxes.
Each of the sections of the dialog has a few controls associated with it. eg: The Country section has fields for currency, telephone code, abbreviation (eg, USA, UK). The State section has fields related to State information (Name, abbreviation etc) and the City section contains city-related items, such as Name, Latitude, Longitude, Population etc. There are nearly 75,000 cities in the database, but only those that are in the Country -> State -> City relationship are retrieved.
When the dialog is created, I call BeginCheckPoint on the persistenceManager and if the dialog is cancelled, I call RollbackCheckPoint to undo any changes. However, the dialog can take over 4 minutes to close, even if it is cancelled immediately after opening and no changes have been made. The dialog takes about 10 seconds to close if the OK button is clicked and the changes are saved, which still seems like a long time but is not unusable.
The dialog is functionally working well, but it just takes a very long time to close. Does anyone have any idea why it would take over 4 minutes to cancel, after no changes have been made? I am using Devforce Classic v3.6.3.3.