diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs index 8dce2128ce..ddacc95a62 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs @@ -17,6 +17,7 @@ internal sealed partial class TimeDateExtensionPage : DynamicListPage private readonly Lock _resultsLock = new(); private IList _results = new List(); + private bool _dataLoaded; private SettingsManager _settingsManager; @@ -33,11 +34,23 @@ internal sealed partial class TimeDateExtensionPage : DynamicListPage public override IListItem[] GetItems() { + ListItem[] results; + lock (_resultsLock) + { + if (_dataLoaded) + { + results = _results.ToArray(); + _dataLoaded = false; + return results; + } + } + DoExecuteSearch(string.Empty); lock (_resultsLock) { - ListItem[] results = _results.ToArray(); + results = _results.ToArray(); + _dataLoaded = false; return results; } } @@ -75,6 +88,7 @@ internal sealed partial class TimeDateExtensionPage : DynamicListPage lock (_resultsLock) { this._results = result; + _dataLoaded = true; } RaiseItemsChanged(this._results.Count);