private void SaveGroupDat_Click(object sender, RoutedEventArgs e) { if (this.GroupsList.SelectedIndex == -1) { return; } var dialog = new SaveFileDialog(); dialog.AddExtension = true; dialog.DefaultExt = ".dat"; dialog.Filter = "DAT files (*.dat)|*.dat"; string fileName; if (dialog.ShowDialog(this) == true) { fileName = dialog.FileName; } else { return; } var groups = this.GroupsList.SelectedItems; this.RunBusyAction(disp => { var dat = new DatFile(); foreach (DatGroup group in groups) { var datGroup = new DatGroup(group.GroupId); dat.Groups.Add(datGroup); foreach (DatImage image in group.Images) { DatImage datImage = DatImage.FromMemory( image.GroupId, image.ImageId, image.Format, image.Width, image.Height, image.ColorsCount, image.GetRawData()); datGroup.Images.Add(datImage); } } dat.Save(fileName); }); }
private void AddGroup_Click(object sender, RoutedEventArgs e) { var dat = this.DatFile; if (dat == null) { return; } short groupId = this.DatGroupId; this.RunBusyAction(disp => { var group = new DatGroup(groupId); dat.Groups.Add(group); disp(() => this.DatFile = dat); disp(() => this.GroupsList.SelectedIndex = this.GroupsList.Items.Count - 1); }); }