66using Files . Filesystem ;
77using System . Collections . ObjectModel ;
88using System . Threading . Tasks ;
9+ using Microsoft . Toolkit . Uwp . UI . Controls ;
10+ using Windows . UI . Xaml . Navigation ;
911
1012namespace Files
1113{
1214
1315 public sealed partial class AddItem : Page
1416 {
15- public static ListView addItemsChoices ;
17+ public ListView addItemsChoices ;
18+ public ItemViewModel < AddItem > instanceViewModel ;
1619 public AddItem ( )
1720 {
1821 this . InitializeComponent ( ) ;
22+
1923 addItemsChoices = AddItemsListView ;
2024 AddItemsToList ( ) ;
2125 }
2226
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+
2341 public static List < AddListItem > AddItemsList = new List < AddListItem > ( ) ;
2442
2543 public static void AddItemsToList ( )
@@ -31,41 +49,60 @@ public static void AddItemsToList()
3149
3250 }
3351
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+ }
3564 private async void ListView_ItemClick ( object sender , ItemClickEventArgs e )
3665 {
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+ }
4077 StorageFolder folderToCreateItem = await StorageFolder . GetFolderFromPathAsync ( currentPath ) ;
4178 if ( ( e . ClickedItem as AddListItem ) . Header == "Folder" )
4279 {
43- await ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
44- var userInput = ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
80+ await TabInstance . NameBox . ShowAsync ( ) ;
81+ var userInput = TabInstance . inputForRename ;
4582 if ( userInput != null )
4683 {
4784 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 ) } ) ;
4986 }
5087 }
5188 else if ( ( e . ClickedItem as AddListItem ) . Header == "Text Document" )
5289 {
53- await ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . NameBox . ShowAsync ( ) ;
54- var userInput = ItemViewModel . GetCurrentSelectedTabInstance < ProHome > ( ) . inputForRename ;
90+ await TabInstance . NameBox . ShowAsync ( ) ;
91+ var userInput = TabInstance . inputForRename ;
5592 if ( userInput != null )
5693 {
5794 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" } ) ;
5996 }
6097 }
6198 else if ( ( e . ClickedItem as AddListItem ) . Header == "Bitmap Image" )
6299 {
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 ;
65102 if ( userInput != null )
66103 {
67104 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" } ) ;
69106 }
70107 }
71108 }
0 commit comments