diff --git a/MsCrmTools.MetadataDocumentGenerator/MetadataDocumentGenerator.cs b/MsCrmTools.MetadataDocumentGenerator/MetadataDocumentGenerator.cs index 57076e1..ffa1851 100644 --- a/MsCrmTools.MetadataDocumentGenerator/MetadataDocumentGenerator.cs +++ b/MsCrmTools.MetadataDocumentGenerator/MetadataDocumentGenerator.cs @@ -647,11 +647,21 @@ private void SaveCurrentSettingsToolStripMenuItemClick(object sender, EventArgs private void FillListEntities(List items) { + // Save checked state before clearing + var checkedSchemaNames = new HashSet(); + foreach (ListViewItem item in lvEntities.Items) + { + if (item.Checked) + { + checkedSchemaNames.Add(item.Tag.ToString()); + } + } + lvEntities.Items.Clear(); lvEntities.BeginUpdate(); foreach (var item in items) { - lvEntities.Items.Add(new ListViewItem + var listViewItem = new ListViewItem { Text = item.DisplayName, SubItems = @@ -659,7 +669,15 @@ private void FillListEntities(List items) item.SchemaName }, Tag = item.SchemaName - }); + }; + + // Restore checked state if this entity was previously checked + if (checkedSchemaNames.Contains(item.SchemaName)) + { + listViewItem.Checked = true; + } + + lvEntities.Items.Add(listViewItem); } lvEntities.EndUpdate(); }