How to create Library management in windows application

  1. // Mainpage1.cs  
  2. using System;  
  3. using System.Collections.Generic;  
  4. using Windows.UI.Xaml.Controls;  
  5. namespace SDKTemplate  
  6. {  
  7. public partial class MainPage : Page  
  8. {  
  9. public const string FEATURE_NAME = "Library management C# sample";  
  10. List<Scenario> scenarios = new List<Scenario>  
  11. {  
  12. new Scenario() { Title = "Adding a folder to the Pictures library", ClassType = typeof(Scenario1) },  
  13. new Scenario() { Title = "Listing folders in the Pictures library", ClassType = typeof(Scenario2) },  
  14. new Scenario() { Title = "Removing a folder from the Pictures library", ClassType = typeof(Scenario3) }  
  15. };  
  16. }  
  17. public class Scenario  
  18. {  
  19. public string Title { getset; }  
  20. public Type ClassType { getset; }  
  21. }  
  22. }  
  23. //addfolder.cs  
  24. using System;  
  25. using Windows.Storage;  
  26. using Windows.UI.Xaml;  
  27. using Windows.UI.Xaml.Controls;  
  28. using Windows.UI.Xaml.Navigation;  
  29. namespace SDKTemplate  
  30. {  
  31. public sealed partial class Scenario1 : Page  
  32. {  
  33. public Scenario1()  
  34. {  
  35. this.InitializeComponent();  
  36. }  
  37. protected override void OnNavigatedTo(NavigationEventArgs e)  
  38. {  
  39. }  
  40. private async void AddFolderButton_Click(object sender, RoutedEventArgs e)  
  41. {  
  42. StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);  
  43. StorageFolder folderAdded = await picturesLibrary.RequestAddFolderAsync();  
  44. if (folderAdded != null)  
  45. {  
  46. OutputTextBlock.Text = folderAdded.DisplayName + " was added to the Pictures library.";  
  47. }  
  48. else  
  49. {  
  50. OutputTextBlock.Text = "Operation canceled.";  
  51. }  
  52. }  
  53. }  
  54. }  
  55. //listfolder.cs  
  56. using System;  
  57. using Windows.Foundation.Collections;  
  58. using Windows.Storage;  
  59. using Windows.UI.Core;  
  60. using Windows.UI.Xaml;  
  61. using Windows.UI.Xaml.Controls;  
  62. using Windows.UI.Xaml.Navigation;  
  63. namespace SDKTemplate  
  64. {  
  65. public sealed partial class Scenario2 : Page  
  66. {  
  67. StorageLibrary picturesLibrary;  
  68. public Scenario2()  
  69. {  
  70. this.InitializeComponent();  
  71. }  
  72. protected override void OnNavigatedTo(NavigationEventArgs e)  
  73. {  
  74. }  
  75. private async void ListFoldersButton_Click(object sender, RoutedEventArgs e)  
  76. {  
  77. ListFoldersButton.IsEnabled = false;  
  78. picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);  
  79. FoldersListView.ItemsSource = picturesLibrary.Folders;  
  80. picturesLibrary.DefinitionChanged += async (StorageLibrary innerSender, object innerEvent) =>  
  81. {  
  82. await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>  
  83. {  
  84. UpdateHeaderText();  
  85. });  
  86. };  
  87. UpdateHeaderText();  
  88. }  
  89. private void UpdateHeaderText()  
  90. {  
  91. FoldersListHeaderTextBlock.Text = "Pictures library (" + picturesLibrary.Folders.Count + " folders)";  
  92. }  
  93. }  
  94. }  
  95. //removefolder.cs  
  96. using System;  
  97. using Windows.Foundation.Collections;  
  98. using Windows.Storage;  
  99. using Windows.UI.Core;  
  100. using Windows.UI.Xaml;  
  101. using Windows.UI.Xaml.Controls;  
  102. using Windows.UI.Xaml.Navigation;  
  103. namespace SDKTemplate  
  104. {  
  105. public sealed partial class Scenario3 : Page  
  106. {  
  107. StorageLibrary picturesLibrary;  
  108. public Scenario3()  
  109. {  
  110. this.InitializeComponent();  
  111. this.GetPicturesLibrary();  
  112. }  
  113. protected override void OnNavigatedTo(NavigationEventArgs e)  
  114. {  
  115. }  
  116. private async void RemoveFolderButton_Click(object sender, RoutedEventArgs e)  
  117. {  
  118. var folderToRemove = (StorageFolder)FoldersComboBox.SelectedItem;  
  119. if (await picturesLibrary.RequestRemoveFolderAsync(folderToRemove))  
  120. {  
  121. OutputTextBlock.Text = folderToRemove.DisplayName + " was removed from the Pictures library.";  
  122. }  
  123. else  
  124. {  
  125. OutputTextBlock.Text = "Operation canceled.";  
  126. }  
  127. }  
  128. private async void GetPicturesLibrary()  
  129. {  
  130. picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);  
  131. FoldersComboBox.ItemsSource = picturesLibrary.Folders;  
  132. picturesLibrary.DefinitionChanged += async (StorageLibrary sender, object e) =>  
  133. {  
  134. await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>  
  135. {  
  136. UpdateControls();  
  137. });  
  138. };  
  139. UpdateControls();  
  140. }  
  141. private void FillComboBox()  
  142. {  
  143. FoldersComboBox.ItemsSource = null;  
  144. FoldersComboBox.ItemsSource = picturesLibrary.Folders;  
  145. }  
  146. private void UpdateControls()  
  147. {  
  148. FillComboBox();  
  149. bool libraryHasFolders = (picturesLibrary.Folders.Count > 0);  
  150. FoldersComboBox.SelectedIndex = libraryHasFolders ? 0 : -1;  
  151. FoldersComboBox.Visibility = libraryHasFolders ? Visibility.Visible : Visibility.Collapsed;  
  152. LibraryEmptyTextBlock.Visibility = libraryHasFolders ? Visibility.Collapsed : Visibility.Visible;  
  153. RemoveFolderButton.IsEnabled = libraryHasFolders;  
  154. }  
  155. }  
  156. }