6
6
using Files . Filesystem ;
7
7
using System . Collections . ObjectModel ;
8
8
using System . Threading . Tasks ;
9
+ using Microsoft . Toolkit . Uwp . UI . Controls ;
10
+ using Windows . UI . Xaml . Navigation ;
9
11
10
12
namespace Files
11
13
{
12
14
13
15
public sealed partial class AddItem : Page
14
16
{
17
+ public ListView addItemsChoices ;
18
+ public ItemViewModel < AddItem > instanceViewModel ;
15
19
public AddItem ( )
16
20
{
17
21
this . InitializeComponent ( ) ;
22
+
23
+ addItemsChoices = AddItemsListView ;
18
24
AddItemsToList ( ) ;
19
25
}
20
26
27
+ protected override void OnNavigatedTo ( NavigationEventArgs eventArgs )
28
+ {
29
+ base . OnNavigatedTo ( eventArgs ) ;
30
+ var parameters = eventArgs . Parameter ;
31
+ if ( parameters . GetType ( ) == typeof ( GenericFileBrowser ) )
32
+ {
33
+ instanceViewModel = new ItemViewModel < AddItem > ( ) ;
34
+ }
35
+ else if ( parameters . GetType ( ) == typeof ( PhotoAlbum ) )
36
+ {
37
+ instanceViewModel = new ItemViewModel < AddItem > ( ) ;
38
+ }
39
+ }
40
+
21
41
public static List < AddListItem > AddItemsList = new List < AddListItem > ( ) ;
22
42
23
43
public static void AddItemsToList ( )
@@ -29,41 +49,62 @@ public static void AddItemsToList()
29
49
30
50
}
31
51
32
-
52
+ public T GetCurrentSelectedTabInstance < T > ( )
53
+ {
54
+ Frame rootFrame = Window . Current . Content as Frame ;
55
+ var instanceTabsView = rootFrame . Content as InstanceTabsView ;
56
+ var selectedTabContent = ( ( instanceTabsView . tabView . SelectedItem as TabViewItem ) . Content as Grid ) ;
57
+ foreach ( UIElement uiElement in selectedTabContent . Children )
58
+ {
59
+ if ( uiElement . GetType ( ) == typeof ( Frame ) )
60
+ {
61
+ return ( T ) ( ( uiElement as Frame ) . Content ) ;
62
+ }
63
+ }
64
+ return default ;
65
+ }
33
66
private async void ListView_ItemClick ( object sender , ItemClickEventArgs e )
34
67
{
35
-
36
- GenericFileBrowser . AddItemBox . Hide ( ) ;
37
- var currentPath = App . ViewModel . Universal . path ;
68
+ var TabInstance = GetCurrentSelectedTabInstance < ProHome > ( ) ;
69
+ TabInstance . AddItemBox . Hide ( ) ;
70
+ string currentPath = null ;
71
+ if ( TabInstance . accessibleContentFrame . SourcePageType == typeof ( GenericFileBrowser ) )
72
+ {
73
+ currentPath = ( TabInstance . accessibleContentFrame . Content as GenericFileBrowser ) . instanceViewModel . Universal . path ;
74
+ }
75
+ else if ( TabInstance . accessibleContentFrame . SourcePageType == typeof ( PhotoAlbum ) )
76
+ {
77
+ currentPath = ( TabInstance . accessibleContentFrame . Content as PhotoAlbum ) . instanceViewModel . Universal . path ;
78
+ }
38
79
StorageFolder folderToCreateItem = await StorageFolder . GetFolderFromPathAsync ( currentPath ) ;
39
80
if ( ( e . ClickedItem as AddListItem ) . Header == "Folder" )
40
81
{
41
- await GenericFileBrowser . NameBox . ShowAsync ( ) ;
42
- var userInput = GenericFileBrowser . inputForRename ;
82
+ await TabInstance . NameBox . ShowAsync ( ) ;
83
+ var userInput = TabInstance . inputForRename ;
43
84
if ( userInput != null )
44
85
{
45
86
var folder = await folderToCreateItem . CreateFolderAsync ( userInput , CreationCollisionOption . FailIfExists ) ;
46
- App . ViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Collapsed , FolderImg = Visibility . Visible , FileIconVis = Visibility . Collapsed , FileType = "Folder" , FileImg = null , FilePath = ( App . ViewModel . Universal . path + "\\ " + userInput ) } ) ;
87
+ instanceViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Collapsed , FolderImg = Visibility . Visible , FileIconVis = Visibility . Collapsed , FileType = "Folder" , FileImg = null , FilePath = ( instanceViewModel . Universal . path + "\\ " + userInput ) } ) ;
47
88
}
48
89
}
49
90
else if ( ( e . ClickedItem as AddListItem ) . Header == "Text Document" )
50
91
{
51
- await GenericFileBrowser . NameBox . ShowAsync ( ) ;
52
- var userInput = GenericFileBrowser . inputForRename ;
92
+ await TabInstance . NameBox . ShowAsync ( ) ;
93
+ var userInput = TabInstance . inputForRename ;
53
94
if ( userInput != null )
54
95
{
55
96
var folder = await folderToCreateItem . CreateFileAsync ( userInput + ".txt" , CreationCollisionOption . FailIfExists ) ;
56
- App . ViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Visible , FolderImg = Visibility . Collapsed , FileIconVis = Visibility . Collapsed , FileType = "Text Document" , FileImg = null , FilePath = ( App . ViewModel . Universal . path + "\\ " + userInput + ".txt" ) , DotFileExtension = ".txt" } ) ;
97
+ instanceViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Visible , FolderImg = Visibility . Collapsed , FileIconVis = Visibility . Collapsed , FileType = "Text Document" , FileImg = null , FilePath = ( instanceViewModel . Universal . path + "\\ " + userInput + ".txt" ) , DotFileExtension = ".txt" } ) ;
57
98
}
58
99
}
59
100
else if ( ( e . ClickedItem as AddListItem ) . Header == "Bitmap Image" )
60
101
{
61
- await GenericFileBrowser . NameBox . ShowAsync ( ) ;
62
- var userInput = GenericFileBrowser . inputForRename ;
102
+ await GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
103
+ var userInput = GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
63
104
if ( userInput != null )
64
105
{
65
106
var folder = await folderToCreateItem . CreateFileAsync ( userInput + ".bmp" , CreationCollisionOption . FailIfExists ) ;
66
- App . ViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Visible , FolderImg = Visibility . Collapsed , FileIconVis = Visibility . Collapsed , FileType = "BMP File" , FileImg = null , FilePath = ( App . ViewModel . Universal . path + "\\ " + userInput + ".bmp" ) , DotFileExtension = ".bmp" } ) ;
107
+ instanceViewModel . AddFileOrFolder ( new ListedItem ( folder . FolderRelativeId ) { FileName = userInput , FileDateReal = DateTimeOffset . Now , EmptyImgVis = Visibility . Visible , FolderImg = Visibility . Collapsed , FileIconVis = Visibility . Collapsed , FileType = "BMP File" , FileImg = null , FilePath = ( instanceViewModel . Universal . path + "\\ " + userInput + ".bmp" ) , DotFileExtension = ".bmp" } ) ;
67
108
}
68
109
}
69
110
}
0 commit comments