private async void DeviceWatcher_EnumerationCompleted(DeviceWatcher sender, object args) { if (App.sideBarItems.FirstOrDefault(x => x is HeaderTextItem && x.Text == "Drives") == null) { App.sideBarItems.Add(new HeaderTextItem() { Text = "Drives" }); } foreach (DriveItem drive in Drives) { if (!App.sideBarItems.Contains(drive)) { App.sideBarItems.Add(drive); } } foreach (INavigationControlItem item in App.sideBarItems.ToList()) { if (item is DriveItem && !Drives.Contains(item)) { App.sideBarItems.Remove(item); } } }
private async void MainView_Activated(CoreApplicationView sender, Windows.ApplicationModel.Activation.IActivatedEventArgs args) { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { if (App.sideBarItems.FirstOrDefault(x => x is HeaderTextItem && x.Text == ResourceController.GetTranslation("SidebarDrives")) == null) { App.sideBarItems.Add(new HeaderTextItem() { Text = ResourceController.GetTranslation("SidebarDrives") }); } foreach (DriveItem drive in Drives) { if (!App.sideBarItems.Contains(drive)) { App.sideBarItems.Add(drive); } } foreach (INavigationControlItem item in App.sideBarItems.ToList()) { if (item is DriveItem && !Drives.Contains(item)) { App.sideBarItems.Remove(item); } } }); CoreApplication.MainView.Activated -= MainView_Activated; }
private async void DeviceWatcher_EnumerationCompleted(DeviceWatcher sender, object args) { try { await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { if (App.sideBarItems.FirstOrDefault(x => x is HeaderTextItem && x.Text == ResourceController.GetTranslation("SidebarDrives")) == null) { App.sideBarItems.Add(new HeaderTextItem() { Text = ResourceController.GetTranslation("SidebarDrives") }); } foreach (DriveItem drive in Drives) { if (!App.sideBarItems.Contains(drive)) { App.sideBarItems.Add(drive); } } foreach (INavigationControlItem item in App.sideBarItems.ToList()) { if (item is DriveItem && !Drives.Contains(item)) { App.sideBarItems.Remove(item); } } }); } catch (Exception) // UI Thread not ready yet, so we defer the pervious operation until it is. { // Defer because UI-thread is not ready yet (and DriveItem requires it?) CoreApplication.MainView.Activated += MainView_Activated; } }
//Wypelnienie listy zawartoscia danej sciezki private void RefreshContent(string p) { string[] dirs = Directory.GetDirectories(p); string[] files = Directory.GetFiles(p); List <string> filesAndDirs = new List <string>(); if (!Drives.Contains(p)) { filesAndDirs.Add(".."); } foreach (var v in dirs) { //Pominiecie folderow odmawiajacych dostepu try { Directory.GetDirectories(v); } catch (Exception) { continue; } filesAndDirs.Add("<D> " + v.Substring(p.Length)); } foreach (var v in files) { filesAndDirs.Add(v.Substring(p.Length)); } PathContent = filesAndDirs.ToArray(); }
//Poruszanie sie po dysku private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if ((sender as ListBox).SelectedItem != null) { string temp = Path; if (!Path.Last().Equals((char)92)) { int index = temp.LastIndexOf((char)92); temp = temp.Substring(0, index + 1); } string item = (sender as ListBox).SelectedItem.ToString(); if (item == "..") { temp = System.IO.Path.GetDirectoryName(temp); temp = System.IO.Path.GetDirectoryName(temp); if (!Drives.Contains(temp)) { temp += "\\"; } Path = temp; (sender as ListBox).SelectedItem = null; return; } if (item.Contains("<D> ")) { temp = temp + item.Substring(4) + "\\"; Path = temp; return; } Path = temp + item; } }
private async void DeviceWatcher_EnumerationCompleted(DeviceWatcher sender, object args) { // Only update collection from UI-thread try { await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { if (App.sideBarItems.FirstOrDefault(x => x is HeaderTextItem && x.Text == ResourceController.GetTranslation("SidebarDrives")) == null) { App.sideBarItems.Add(new HeaderTextItem() { Text = ResourceController.GetTranslation("SidebarDrives") }); } foreach (DriveItem drive in Drives) { if (!App.sideBarItems.Contains(drive)) { App.sideBarItems.Add(drive); } } foreach (INavigationControlItem item in App.sideBarItems.ToList()) { if (item is DriveItem && !Drives.Contains(item)) { App.sideBarItems.Remove(item); } } }); } catch (Exception) { // UI thread not created yet? } }