diff --git a/src/Files.App/Dialogs/FilesystemOperationDialog.xaml b/src/Files.App/Dialogs/FilesystemOperationDialog.xaml index abae820b5fd1..52159650e615 100644 --- a/src/Files.App/Dialogs/FilesystemOperationDialog.xaml +++ b/src/Files.App/Dialogs/FilesystemOperationDialog.xaml @@ -104,15 +104,15 @@ + + SelectedIndex="{x:Bind ConflictResolveOption, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, Converter={StaticResource ConflictResolveOptionToIndexConverter}}" + Visibility="{x:Bind IsConflict, Mode=OneWay}"> diff --git a/src/Files.App/Dialogs/FilesystemOperationDialog.xaml.cs b/src/Files.App/Dialogs/FilesystemOperationDialog.xaml.cs index 8ab9e952c81e..a03fe4875c6f 100644 --- a/src/Files.App/Dialogs/FilesystemOperationDialog.xaml.cs +++ b/src/Files.App/Dialogs/FilesystemOperationDialog.xaml.cs @@ -106,19 +106,6 @@ private void NameEdit_Loaded(object sender, RoutedEventArgs e) (sender as TextBox)?.Focus(FocusState.Programmatic); } - private void ConflictOptions_Loaded(object sender, RoutedEventArgs e) - { - if (sender is ComboBox comboBox) - comboBox.SelectedIndex = ViewModel.LoadConflictResolveOption() switch - { - FileNameConflictResolveOptionType.None => -1, - FileNameConflictResolveOptionType.GenerateNewName => 0, - FileNameConflictResolveOptionType.ReplaceExisting => 1, - FileNameConflictResolveOptionType.Skip => 2, - _ => -1 - }; - } - private void FilesystemOperationDialog_Opened(ContentDialog sender, ContentDialogOpenedEventArgs args) { UpdateDialogLayout(); diff --git a/src/Files.Core/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs b/src/Files.Core/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs index caa78061b2f6..273071f8c3b9 100644 --- a/src/Files.Core/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs +++ b/src/Files.Core/ViewModels/Dialogs/FileSystemDialog/FileSystemDialogViewModel.cs @@ -59,11 +59,18 @@ private FileSystemDialogViewModel(FileSystemDialogMode fileSystemDialogMode, IEn _dialogClosingCts = new(); + _AggregatedResolveOption = _userSettingsService.GeneralSettingsService.ConflictsResolveOption; + _messenger = new WeakReferenceMessenger(); _messenger.Register(this); foreach (var item in items) + { + if (item is FileSystemDialogConflictItemViewModel conflictItem && conflictItem.IsConflict) + conflictItem.ConflictResolveOption = _AggregatedResolveOption; + item.Messenger = _messenger; + } Items = new(items); @@ -111,11 +118,6 @@ public void Receive(FileSystemDialogOptionChangedMessage message) } } - public FileNameConflictResolveOptionType LoadConflictResolveOption() - { - return _userSettingsService.GeneralSettingsService.ConflictsResolveOption; - } - public void SaveConflictResolveOption() { if (AggregatedResolveOption != FileNameConflictResolveOptionType.None &&