diff --git a/src/Files.App/GlobalUsings.cs b/src/Files.App/GlobalUsings.cs index c62e70b0fb46..961232b5ca10 100644 --- a/src/Files.App/GlobalUsings.cs +++ b/src/Files.App/GlobalUsings.cs @@ -50,9 +50,10 @@ global using global::Files.App.Services; global using global::Files.App.UserControls; global using global::Files.App.UserControls.TabBar; -global using global::Files.App.UserControls.ViewModels.Widgets; +global using global::Files.App.UserControls.Widgets; global using global::Files.App.ViewModels; global using global::Files.App.ViewModels.UserControls; +global using global::Files.App.ViewModels.UserControls.Widgets; global using global::Files.App.Views; global using global::Files.App.Views.Layouts; global using global::Files.App.Views.Shells; diff --git a/src/Files.App/UserControls/Widgets/DrivesWidget.xaml b/src/Files.App/UserControls/Widgets/DrivesWidget.xaml index 95849c7e275f..74aa5f71355f 100644 --- a/src/Files.App/UserControls/Widgets/DrivesWidget.xaml +++ b/src/Files.App/UserControls/Widgets/DrivesWidget.xaml @@ -8,6 +8,7 @@ xmlns:helpers="using:Files.App.Helpers" xmlns:local="using:Files.App.UserControls.Widgets" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + DataContext="{x:Bind ViewModel, Mode=OneWay}" mc:Ignorable="d"> diff --git a/src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs b/src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs index d97dc52f9afc..129a962a4618 100644 --- a/src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs @@ -18,6 +18,8 @@ namespace Files.App.UserControls.Widgets /// public sealed partial class DrivesWidget : BaseWidgetViewModel, IWidgetViewModel, INotifyPropertyChanged { + private DrivesWidgetViewModel ViewModel { get; set; } + public IUserSettingsService userSettingsService { get; } = Ioc.Default.GetRequiredService(); private IHomePageContext HomePageContext { get; } = Ioc.Default.GetRequiredService(); private DrivesViewModel drivesViewModel = Ioc.Default.GetRequiredService(); diff --git a/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml b/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml index 18029e56aa17..1b128f13099d 100644 --- a/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml +++ b/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml @@ -10,6 +10,7 @@ xmlns:helpers="using:Files.App.Helpers" xmlns:local="using:Files.App.UserControls.Widgets" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + DataContext="{x:Bind ViewModel, Mode=OneWay}" mc:Ignorable="d"> diff --git a/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml.cs b/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml.cs index e9cb2ee0e345..4f793c9cffbd 100644 --- a/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/FileTagsWidget.xaml.cs @@ -18,15 +18,11 @@ namespace Files.App.UserControls.Widgets /// public sealed partial class FileTagsWidget : BaseWidgetViewModel, IWidgetViewModel { + public FileTagsWidgetViewModel ViewModel { get; set; } + private readonly IUserSettingsService userSettingsService; private IHomePageContext HomePageContext { get; } = Ioc.Default.GetRequiredService(); - public FileTagsWidgetViewModel ViewModel - { - get => (FileTagsWidgetViewModel)DataContext; - set => DataContext = value; - } - public IShellPage AppInstance; public Func? OpenAction { get; set; } diff --git a/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml b/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml index df3c2cf21da6..40321096abf3 100644 --- a/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml +++ b/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml @@ -7,6 +7,7 @@ xmlns:dataitems="using:Files.App.Data.Items" xmlns:local="using:Files.App.UserControls.Widgets" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + DataContext="{x:Bind ViewModel, Mode=OneWay}" mc:Ignorable="d"> diff --git a/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs b/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs index 01da15002b8f..71d98d0e3a5e 100644 --- a/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs @@ -18,6 +18,8 @@ namespace Files.App.UserControls.Widgets /// public sealed partial class QuickAccessWidget : BaseWidgetViewModel, IWidgetViewModel, INotifyPropertyChanged { + private QuickAccessWidgetViewModel ViewModel { get; set; } + public IUserSettingsService userSettingsService { get; } = Ioc.Default.GetRequiredService(); private IHomePageContext HomePageContext { get; } = Ioc.Default.GetRequiredService(); diff --git a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml index 0eba968779db..99954af4b46b 100644 --- a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml +++ b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml @@ -9,6 +9,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:muxc="using:Microsoft.UI.Xaml.Controls" xmlns:recent="using:Files.App.Utils.RecentItem" + DataContext="{x:Bind ViewModel, Mode=OneWay}" mc:Ignorable="d"> diff --git a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs index bed57646d427..6b82822e1cd4 100644 --- a/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs +++ b/src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs @@ -20,6 +20,8 @@ namespace Files.App.UserControls.Widgets /// public sealed partial class RecentFilesWidget : BaseWidgetViewModel, IWidgetViewModel, INotifyPropertyChanged { + private RecentFilesWidgetViewModel ViewModel { get; set; } + private IHomePageContext HomePageContext { get; } = Ioc.Default.GetRequiredService(); public delegate void RecentFilesOpenLocationInvokedEventHandler(object sender, PathNavigationEventArgs e); diff --git a/src/Files.App/UserControls/Widgets/BaseWidgetViewModel.cs b/src/Files.App/ViewModels/UserControls/Widgets/BaseWidgetViewModel.cs similarity index 100% rename from src/Files.App/UserControls/Widgets/BaseWidgetViewModel.cs rename to src/Files.App/ViewModels/UserControls/Widgets/BaseWidgetViewModel.cs diff --git a/src/Files.App/ViewModels/UserControls/Widgets/DrivesWidgetViewModel.cs b/src/Files.App/ViewModels/UserControls/Widgets/DrivesWidgetViewModel.cs new file mode 100644 index 000000000000..2947e1e74a01 --- /dev/null +++ b/src/Files.App/ViewModels/UserControls/Widgets/DrivesWidgetViewModel.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2023 Files Community +// Licensed under the MIT License. See the LICENSE. + +namespace Files.App.ViewModels.UserControls.Widgets +{ + /// + /// Represents view model of . + /// + public class DrivesWidgetViewModel + { + public ObservableCollection Items { get; } = []; + } +} diff --git a/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs b/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs index 9c719bb5073b..54115d890003 100644 --- a/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs +++ b/src/Files.App/ViewModels/UserControls/Widgets/FileTagsWidgetViewModel.cs @@ -3,8 +3,11 @@ using Files.Shared.Utils; -namespace Files.App.UserControls.ViewModels.Widgets +namespace Files.App.ViewModels.UserControls.Widgets { + /// + /// Represents view model of . + /// public sealed partial class FileTagsWidgetViewModel : ObservableObject, IAsyncInitialize { // Dependency injections @@ -17,14 +20,13 @@ public sealed partial class FileTagsWidgetViewModel : ObservableObject, IAsyncIn // Properties - public ObservableCollection Containers { get; } + public ObservableCollection Containers { get; } = []; // Constructor public FileTagsWidgetViewModel(Func openAction) { _openAction = openAction; - Containers = new(); } // Methods diff --git a/src/Files.App/ViewModels/UserControls/Widgets/QuickAccessWidgetViewModel.cs b/src/Files.App/ViewModels/UserControls/Widgets/QuickAccessWidgetViewModel.cs new file mode 100644 index 000000000000..6c173d7889bf --- /dev/null +++ b/src/Files.App/ViewModels/UserControls/Widgets/QuickAccessWidgetViewModel.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2023 Files Community +// Licensed under the MIT License. See the LICENSE. + +namespace Files.App.ViewModels.UserControls.Widgets +{ + /// + /// Represents view model of . + /// + public class QuickAccessWidgetViewModel + { + public ObservableCollection Items { get; } = []; + } +} diff --git a/src/Files.App/ViewModels/UserControls/Widgets/RecentFilesWidgetViewModel.cs b/src/Files.App/ViewModels/UserControls/Widgets/RecentFilesWidgetViewModel.cs new file mode 100644 index 000000000000..11257d0cba6d --- /dev/null +++ b/src/Files.App/ViewModels/UserControls/Widgets/RecentFilesWidgetViewModel.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2023 Files Community +// Licensed under the MIT License. See the LICENSE. + +namespace Files.App.ViewModels.UserControls.Widgets +{ + /// + /// Represents view model of . + /// + public class RecentFilesWidgetViewModel + { + public ObservableCollection Items { get; } = []; + } +}