Skip to content

Commit 6cea125

Browse files
committed
Code Quality: Fixed two way binding for filter header
1 parent 427a9b2 commit 6cea125

File tree

3 files changed

+14
-21
lines changed

3 files changed

+14
-21
lines changed

src/Files.App/ViewModels/ShellViewModel.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,18 @@ public void UpdateEmptyTextType()
777777
public string? FilesAndFoldersFilter
778778
{
779779
get => _filesAndFoldersFilter;
780-
set => SetProperty(ref _filesAndFoldersFilter, value);
780+
set
781+
{
782+
if (SetProperty(ref _filesAndFoldersFilter, value))
783+
{
784+
FilesAndFolderFilterUpdated();
785+
}
786+
}
787+
}
788+
789+
private void FilesAndFolderFilterUpdated()
790+
{
791+
_ = ApplyFilesAndFoldersChangesAsync();
781792
}
782793

783794

@@ -1894,7 +1905,6 @@ await Task.Run(async () =>
18941905
});
18951906

18961907
filesAndFolders.AddRange(fileList);
1897-
FilesAndFoldersFilter = null;
18981908

18991909
await OrderFilesAndFoldersAsync();
19001910
await ApplyFilesAndFoldersChangesAsync();
@@ -1903,6 +1913,7 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
19031913
{
19041914
GetDesktopIniFileData();
19051915
CheckForBackgroundImage();
1916+
FilesAndFoldersFilter = null;
19061917
},
19071918
Microsoft.UI.Dispatching.DispatcherQueuePriority.Low);
19081919
});

src/Files.App/Views/Shells/ModernShellPage.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@
149149
VerticalAlignment="Center"
150150
PlaceholderText="{helpers:ResourceString Name=Filename}"
151151
PreviewKeyDown="FilterTextBox_PreviewKeyDown"
152-
TextChanged="FilterTextBox_TextChanged" />
152+
Text="{x:Bind ShellViewModel.FilesAndFoldersFilter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
153153
</StackPanel>
154154
</Grid>
155155

src/Files.App/Views/Shells/ModernShellPage.xaml.cs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public ModernShellPage() : base(new CurrentInstanceViewModel())
4545
ShellViewModel.PageTypeUpdated += FilesystemViewModel_PageTypeUpdated;
4646
ShellViewModel.OnSelectionRequestedEvent += FilesystemViewModel_OnSelectionRequestedEvent;
4747
ShellViewModel.GitDirectoryUpdated += FilesystemViewModel_GitDirectoryUpdated;
48-
ShellViewModel.DirectoryInfoUpdated += ShellViewModel_DirectoryInfoUpdated;
4948
ShellViewModel.FocusFilterHeader += ShellViewModel_FocusFilterHeader;
5049

5150
ToolbarViewModel.PathControlDisplayText = Strings.Home.GetLocalizedResource();
@@ -63,13 +62,6 @@ private async void ShellViewModel_FocusFilterHeader(object sender, EventArgs e)
6362
FilterTextBox.Focus(FocusState.Programmatic);
6463
}
6564

66-
private void ShellViewModel_DirectoryInfoUpdated(object sender, EventArgs e)
67-
{
68-
// Regular binding causes issues when refreshing the directory so we set the text manually
69-
if (FilterTextBox?.IsLoaded ?? false)
70-
FilterTextBox.Text = ShellViewModel.FilesAndFoldersFilter ?? string.Empty;
71-
}
72-
7365
private void ModernShellPage_RefreshWidgetsRequested(object sender, EventArgs e)
7466
{
7567
if (ItemDisplayFrame?.Content is HomePage currentPage)
@@ -342,16 +334,6 @@ public override void NavigateToPath(string? navigationPath, Type? sourcePageType
342334
ToolbarViewModel.PathControlDisplayText = ShellViewModel.WorkingDirectory;
343335
}
344336

345-
private async void FilterTextBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
346-
{
347-
if (args.Reason is AutoSuggestionBoxTextChangeReason.UserInput)
348-
{
349-
ShellViewModel.FilesAndFoldersFilter = sender.Text;
350-
await ShellViewModel.ApplyFilesAndFoldersChangesAsync();
351-
}
352-
353-
}
354-
355337
private void FilterTextBox_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
356338
{
357339
if (e.Key is VirtualKey.Escape &&

0 commit comments

Comments
 (0)