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
{
15
- public static ListView addItemsChoices ;
17
+ public ListView addItemsChoices ;
18
+ public ItemViewModel < AddItem > instanceViewModel ;
16
19
public AddItem ( )
17
20
{
18
21
this . InitializeComponent ( ) ;
22
+
19
23
addItemsChoices = AddItemsListView ;
20
24
AddItemsToList ( ) ;
21
25
}
22
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 > ( null , typeof ( GenericFileBrowser ) ) ;
34
+ }
35
+ else if ( parameters . GetType ( ) == typeof ( PhotoAlbum ) )
36
+ {
37
+ instanceViewModel = new ItemViewModel < AddItem > ( null , typeof ( PhotoAlbum ) ) ;
38
+ }
39
+ }
40
+
23
41
public static List < AddListItem > AddItemsList = new List < AddListItem > ( ) ;
24
42
25
43
public static void AddItemsToList ( )
@@ -31,41 +49,60 @@ public static void AddItemsToList()
31
49
32
50
}
33
51
34
-
52
+ public T GetCurrentSelectedTabInstance < T > ( )
53
+ {
54
+ var selectedTabContent = ( ( InstanceTabsView . tabView . SelectedItem as TabViewItem ) . Content as Grid ) ;
55
+ foreach ( UIElement uiElement in selectedTabContent . Children )
56
+ {
57
+ if ( uiElement . GetType ( ) == typeof ( Frame ) )
58
+ {
59
+ return ( T ) ( ( uiElement as Frame ) . Content ) ;
60
+ }
61
+ }
62
+ return default ;
63
+ }
35
64
private async void ListView_ItemClick ( object sender , ItemClickEventArgs e )
36
65
{
37
-
38
- ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . AddItemBox . Hide ( ) ;
39
- var currentPath = App . ViewModel . Universal . path ;
66
+ var TabInstance = GetCurrentSelectedTabInstance < ProHome > ( ) ;
67
+ TabInstance . AddItemBox . Hide ( ) ;
68
+ string currentPath = null ;
69
+ if ( TabInstance . accessibleContentFrame . SourcePageType == typeof ( GenericFileBrowser ) )
70
+ {
71
+ currentPath = ( TabInstance . accessibleContentFrame . Content as GenericFileBrowser ) . instanceViewModel . Universal . path ;
72
+ }
73
+ else if ( TabInstance . accessibleContentFrame . SourcePageType == typeof ( PhotoAlbum ) )
74
+ {
75
+ currentPath = ( TabInstance . accessibleContentFrame . Content as PhotoAlbum ) . instanceViewModel . Universal . path ;
76
+ }
40
77
StorageFolder folderToCreateItem = await StorageFolder . GetFolderFromPathAsync ( currentPath ) ;
41
78
if ( ( e . ClickedItem as AddListItem ) . Header == "Folder" )
42
79
{
43
- await ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
44
- var userInput = ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
80
+ await TabInstance . NameBox . ShowAsync ( ) ;
81
+ var userInput = TabInstance . inputForRename ;
45
82
if ( userInput != null )
46
83
{
47
84
var folder = await folderToCreateItem . CreateFolderAsync ( userInput , CreationCollisionOption . FailIfExists ) ;
48
- 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 ) } ) ;
85
+ 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 ) } ) ;
49
86
}
50
87
}
51
88
else if ( ( e . ClickedItem as AddListItem ) . Header == "Text Document" )
52
89
{
53
- await ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
54
- var userInput = ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
90
+ await TabInstance . NameBox . ShowAsync ( ) ;
91
+ var userInput = TabInstance . inputForRename ;
55
92
if ( userInput != null )
56
93
{
57
94
var folder = await folderToCreateItem . CreateFileAsync ( userInput + ".txt" , CreationCollisionOption . FailIfExists ) ;
58
- 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" } ) ;
95
+ 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" } ) ;
59
96
}
60
97
}
61
98
else if ( ( e . ClickedItem as AddListItem ) . Header == "Bitmap Image" )
62
99
{
63
- await ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
64
- var userInput = ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
100
+ await GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
101
+ var userInput = GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
65
102
if ( userInput != null )
66
103
{
67
104
var folder = await folderToCreateItem . CreateFileAsync ( userInput + ".bmp" , CreationCollisionOption . FailIfExists ) ;
68
- 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" } ) ;
105
+ 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" } ) ;
69
106
}
70
107
}
71
108
}
0 commit comments