private static void InitAndPersistPosition(Window window, SettingsBase settings, Func<Window, string> idGenerator)
{
const string settingName = "WindowLocationPersisterData";
string id = idGenerator(window);
{ // Init data
Dictionary<string, object> data = GetData((string)settings[settingName], id);
InitWindow(window, data);
}
window.Closing += delegate
{
Dictionary<string, object> data = GetData((string)settings[settingName], id);
PickleWindow(window, data);
settings[settingName] = SaveData(data, id);
settings.Save();
};
}