private void RestoreQuickAccess() { const string name = "ribbon.xml"; if (!File.Exists(name)) { return; } try { var fs = File.OpenRead(name); using (var reader = new StreamReader(fs)) { var serializer = new XmlSerializer(typeof(ArrayList)); var list = serializer.Deserialize(reader) as ArrayList; if (list == null) { return; } var names = list.OfType <string>(); var items = names.Select(QuickAccessRegistry.Find).Where(x => x != null); QuickAccessItems.AddRange(items); } } catch (IOException ex) { Debug.WriteLine(ex); } }
private async Task StoreQuickAccessAsync() { var keys = new ArrayList(QuickAccessItems .Where(x => x.Key != null) .Select(x => x.Key) .ToArray()); if (keys.Count == 0) { return; } const string name = "ribbon.xml"; try { var fs = !File.Exists(name) ? File.Create(name) : File.Open(name, FileMode.Truncate, FileAccess.Write); using (var writer = new StreamWriter(fs)) { var serializer = new XmlSerializer(typeof(ArrayList)); serializer.Serialize(writer, keys); await writer.FlushAsync(); } } catch (IOException ex) { Debug.WriteLine(ex); } }
private async void OnAddQuickAccess(object sender, ExecutedRoutedEventArgs e) { if (!(e.Parameter is IQuickAccessConform)) { return; } QuickAccessItems.Add((IQuickAccessConform)e.Parameter); await StoreQuickAccessAsync(); }