Skip to content

Commit 44b4ce5

Browse files
committed
Code Quality: Fixed two way binding for filter header
1 parent 9d879a9 commit 44b4ce5

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
@@ -750,7 +750,18 @@ public void UpdateEmptyTextType()
750750
public string? FilesAndFoldersFilter
751751
{
752752
get => _filesAndFoldersFilter;
753-
set => SetProperty(ref _filesAndFoldersFilter, value);
753+
set
754+
{
755+
if (SetProperty(ref _filesAndFoldersFilter, value))
756+
{
757+
FilesAndFolderFilterUpdated();
758+
}
759+
}
760+
}
761+
762+
private void FilesAndFolderFilterUpdated()
763+
{
764+
_ = ApplyFilesAndFoldersChangesAsync();
754765
}
755766

756767

@@ -1867,7 +1878,6 @@ await Task.Run(async () =>
18671878
});
18681879

18691880
filesAndFolders.AddRange(fileList);
1870-
FilesAndFoldersFilter = null;
18711881

18721882
await OrderFilesAndFoldersAsync();
18731883
await ApplyFilesAndFoldersChangesAsync();
@@ -1876,6 +1886,7 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
18761886
{
18771887
GetDesktopIniFileData();
18781888
CheckForBackgroundImage();
1889+
FilesAndFoldersFilter = null;
18791890
},
18801891
Microsoft.UI.Dispatching.DispatcherQueuePriority.Low);
18811892
});

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@
125125
VerticalAlignment="Center"
126126
PlaceholderText="{helpers:ResourceString Name=Filename}"
127127
PreviewKeyDown="FilterTextBox_PreviewKeyDown"
128-
TextChanged="FilterTextBox_TextChanged" />
128+
Text="{x:Bind ShellViewModel.FilesAndFoldersFilter, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
129129
</StackPanel>
130130
</Grid>
131131

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)