public void PopulateGrid(IStructure structure) { DataGrid.GenerateDataTable(structure); ExportCommand.OnCanExecuteChanged(this, new EventArgs()); }
private async void Load(object param) { try { var path = GetPath(); if (path == null) { return; } string text; using (var str = new StreamReader(path, Encoding.Default)) { IsBusy = true; text = await str.ReadToEndAsync(); await Task.Delay(1000); IsBusy = false; } var xdoc = XDocument.Parse(text); foreach (var chapterss in xdoc.Root.Elements("Chapters")) { foreach (var chapter in chapterss.Elements("Chapter")) { var count = 0; var chapterCaption = chapter.Attributes("Caption").First(); var newchapter = new Models(chapterCaption.Value); foreach (var position in chapter.Elements("Position")) { var caption = position.Attributes("Caption").First(); var code = position.Attributes("Code").First(); var units = position.Attributes("Units").First(); count++; var quantity = position.Elements("Quantity").First(); var quantityFx = quantity.Attributes("Fx").First(); var result = CalcExpression(quantityFx.Value); var positions = new Position(count, code.Value, caption.Value, units.Value, result.ToString()); newchapter.Positions.Add(positions); foreach (var resources in position.Elements("Resources")) { foreach (var tzm in resources.Elements("Tzm")) { var tzm1 = tzm.Attributes("Caption").First(); var tzmMchCode = tzm.Attributes("Code").First(); var tzmMchUnits = tzm.Attributes("Units").First(); var tzmMchQuantity = tzm.Attributes("Quantity").First(); positions.TzmMchs.Add(new TzmMch(tzmMchCode.Value, tzm1.Value, tzmMchUnits.Value, tzmMchQuantity.Value)); } foreach (var mch in resources.Elements("Mch")) { var mch1 = mch.Attributes("Caption").First(); var tzmMchCode = mch.Attributes("Code").First(); var tzmMchUnits = mch.Attributes("Units").First(); var tzmMchQuantity = mch.Attributes("Quantity").First(); positions.TzmMchs.Add(new TzmMch(tzmMchCode.Value, mch1.Value, tzmMchUnits.Value, tzmMchQuantity.Value)); } } } Chapters.Add(newchapter); } } _isFileLoaded = true; ExportCommand.OnCanExecuteChanged(); } catch (Exception e) { MessageBox.Show(e.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } finally { IsBusy = false; } }