Skip to content

Commit 9b4d87e

Browse files
authored
Code Quality: Move App.TemplateSelectors to App.Data.TemplateSelectors (#12566)
1 parent 0ee97de commit 9b4d87e

File tree

6 files changed

+41
-28
lines changed

6 files changed

+41
-28
lines changed

src/Files.App/TemplateSelectors/BaseTemplateSelector.cs renamed to src/Files.App/Data/TemplateSelectors/BaseTemplateSelector.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using Microsoft.UI.Xaml;
55
using Microsoft.UI.Xaml.Controls;
66

7-
namespace Files.App.TemplateSelectors
7+
namespace Files.App.Data.TemplateSelectors
88
{
99
internal abstract class BaseTemplateSelector<TItem> : DataTemplateSelector
1010
{

src/Files.App/TemplateSelectors/FileSystemDialogItemSelector.cs renamed to src/Files.App/Data/TemplateSelectors/FileSystemDialogItemSelector.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using Files.Backend.ViewModels.Dialogs.FileSystemDialog;
55
using Microsoft.UI.Xaml;
66

7-
namespace Files.App.TemplateSelectors
7+
namespace Files.App.Data.TemplateSelectors
88
{
99
internal sealed class FileSystemDialogItemSelector : BaseTemplateSelector<BaseFileSystemDialogItemViewModel>
1010
{
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// Copyright (c) 2023 Files Community
2+
// Licensed under the MIT License. See the LICENSE.
3+
4+
using Microsoft.UI.Xaml;
5+
using Microsoft.UI.Xaml.Controls;
6+
7+
namespace Files.App.Data.TemplateSelectors
8+
{
9+
/// <summary>
10+
/// Provides template selector for Path Breadcrumb template items.
11+
/// </summary>
12+
internal sealed class PathBreadcrumbItemSelector : DataTemplateSelector
13+
{
14+
public DataTemplate? ParentItems { get; set; }
15+
16+
public DataTemplate? CurrentItem { get; set; }
17+
18+
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
19+
{
20+
var itemsControl = ItemsControl.ItemsControlFromItemContainer(container);
21+
22+
if (itemsControl.ItemsSource is ObservableCollection<PathBoxItem> items)
23+
{
24+
return
25+
itemsControl.IndexFromContainer(container) == items.Count - 1
26+
? CurrentItem!
27+
: ParentItems!;
28+
}
29+
else
30+
{
31+
throw new ArgumentException($"Type of {nameof(itemsControl.ItemsSource)} doesn't match ObservableCollection<{nameof(PathBoxItem)}>");
32+
}
33+
}
34+
}
35+
}

src/Files.App/Dialogs/FilesystemOperationDialog.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
88
xmlns:helpers="using:Files.App.Helpers"
99
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
10-
xmlns:ts="using:Files.App.TemplateSelectors"
10+
xmlns:templateselectors="using:Files.App.Data.TemplateSelectors"
1111
xmlns:tvc="using:CommunityToolkit.WinUI.UI.Converters"
1212
xmlns:vm="using:Files.Backend.ViewModels.Dialogs.FileSystemDialog"
1313
x:Name="RootDialog"
@@ -213,7 +213,7 @@
213213
SelectionMode="None">
214214

215215
<ListView.ItemTemplateSelector>
216-
<ts:FileSystemDialogItemSelector ConflictItemDataTemplate="{StaticResource ConflictItemDataTemplate}" DefaultItemDataTemplate="{StaticResource DefaultItemDataTemplate}" />
216+
<templateselectors:FileSystemDialogItemSelector ConflictItemDataTemplate="{StaticResource ConflictItemDataTemplate}" DefaultItemDataTemplate="{StaticResource DefaultItemDataTemplate}" />
217217
</ListView.ItemTemplateSelector>
218218

219219
<ListView.ItemsPanel>

src/Files.App/Helpers/ItemsDataTemplateSelector.cs

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/Files.App/UserControls/PathBreadcrumb.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
88
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
99
xmlns:dataitem="using:Files.App.Data.Items"
10-
xmlns:helpers="using:Files.App.Helpers"
1110
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
11+
xmlns:templateselectors="using:Files.App.Data.TemplateSelectors"
1212
d:DesignHeight="300"
1313
d:DesignWidth="400"
1414
mc:Ignorable="d">
@@ -172,7 +172,7 @@
172172
</ListView.ItemContainerTransitions>
173173

174174
<ListView.ItemTemplateSelector>
175-
<helpers:ItemsDataTemplateSelector CurrentItem="{StaticResource CurrentItem}" ParentItems="{StaticResource ParentItems}" />
175+
<templateselectors:PathBreadcrumbItemSelector CurrentItem="{StaticResource CurrentItem}" ParentItems="{StaticResource ParentItems}" />
176176
</ListView.ItemTemplateSelector>
177177

178178
</ListView>

0 commit comments

Comments
 (0)