From a690ea96a5774aa78cfcef5a80cd5f0839b6f027 Mon Sep 17 00:00:00 2001 From: Ross Luengen Date: Tue, 23 Sep 2025 10:04:13 -0700 Subject: [PATCH] Realize list item properties when the container changes for UI --- .../Microsoft.CmdPal.Core.ViewModels/ListViewModel.cs | 7 ------- .../cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml | 2 ++ .../cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml.cs | 8 ++++++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.Core.ViewModels/ListViewModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.Core.ViewModels/ListViewModel.cs index 21b6af7ff3..88288e4018 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.Core.ViewModels/ListViewModel.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.Core.ViewModels/ListViewModel.cs @@ -200,13 +200,6 @@ public partial class ListViewModel : PageViewModel, IDisposable // Check for cancellation before initializing first twenty items cancellationToken.ThrowIfCancellationRequested(); - var firstTwenty = newViewModels.Take(20); - foreach (var item in firstTwenty) - { - cancellationToken.ThrowIfCancellationRequested(); - item?.SafeInitializeProperties(); - } - // Cancel any ongoing search _cancellationTokenSource?.Cancel(); diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml index 676a676f95..391f5c4d9c 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml @@ -276,6 +276,7 @@ IsDoubleTapEnabled="True" IsItemClickEnabled="True" ItemClick="Items_ItemClick" + ContainerContentChanging="ItemsList_ContainerContentChanging" ItemTemplate="{StaticResource ListItemViewModelTemplate}" ItemsSource="{x:Bind ViewModel.FilteredItems, Mode=OneWay}" RightTapped="Items_RightTapped" @@ -295,6 +296,7 @@ IsDoubleTapEnabled="True" IsItemClickEnabled="True" ItemClick="Items_ItemClick" + ContainerContentChanging="ItemsList_ContainerContentChanging" ItemTemplateSelector="{StaticResource GridItemTemplateSelector}" ItemsSource="{x:Bind ViewModel.FilteredItems, Mode=OneWay}" RightTapped="Items_RightTapped" diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml.cs index a1544e03fa..e8127947f1 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/ExtViews/ListPage.xaml.cs @@ -427,4 +427,12 @@ public sealed partial class ListPage : Page, Keyboard, Pointer, } + + private void ItemsList_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args) + { + if (args.Item is ListItemViewModel item) + { + item.SafeInitializeProperties(); + } + } }