public BlockageEvacuationRoutesViewModel()
        {
            ДиапазонТемператур          = Enumerable.Range(0, 1201);
            НачальнаяТемператураВоздуха = 24;

            ВыбраннаяТиповаяНагрузка = ТиповыеНагрузки.FirstOrDefault();
            Длина  = 10;
            Ширина = 10;
            Высота = 3;


            ВысотаРабочейЗоны              = 0;
            азностьВысотПола               = 0;
            ПредельнаяДальностьВидимости   = 20;
            НачальнаяОсвещенность          = 50;
            КоэффициентОтраженияПредметов  = 0.3;
            КоэффициентТеплопотер          = 0.55;
            НачальнаяКонцентрацияКислорода = 0.23;
            ТекущаяКонцентрацияКислорода   = 0.23;

            КруговоеРаспространенияПожара = true; OnPropertyChanged("КруговоеРаспространенияПожара");

            ассчетCommand = new RelayCommand(param => this.ассчет());
            старт         = true;
            ассчет();
        }
        private void ЗагрузитьДанные()
        {
            var имяфайла = "ТиповыеНагрузки.txt";

            if (!File.Exists(имяфайла))
            {
                MessageBox.Show(string.Format("Отсутствует файл \"{0}\" с данными о типовых нагрузках", имяфайла), "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            var данные  = File.ReadAllText(имяфайла);
            var pattern = new Regex(@"\""(?<название>.*?)\""(?<значения>.*?)\n");

            var matches = pattern.Matches(данные + "\r\n");

            foreach (Match match in matches)
            {
                if (match.Success)
                {
                    string название = match.Groups["название"].Value;
                    if (string.IsNullOrEmpty(название))
                    {
                        continue;
                    }
                    string значения = match.Groups["значения"].Value;
                    if (string.IsNullOrEmpty(значения))
                    {
                        continue;
                    }

                    //if (NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator == ".")
                    //    значения.Replace(",", NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator);
                    //else
                    //    значения.Replace(".", NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator);

                    значения.Replace(",", ".");

                    var список = значения.Split(new string[] { "\t", " ", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
                    if (список == null || список.Length < 8)
                    {
                        continue;
                    }
                    var нагрузка = new ТиповаяНагрузка(название);

                    double число;
                    if (!double.TryParse(список[0], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.НизшаяТеплотаСгорания = число;

                    if (!double.TryParse(список[1], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.ЛинейнаяСкоростьПламени = число;

                    if (!double.TryParse(список[2], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.УдельнаяСкоростьВыгорания = число;

                    if (!double.TryParse(список[3], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.ДымообразующаяСпособность = число;

                    if (!double.TryParse(список[4], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.ПотреблениеКислорода = число;

                    if (!double.TryParse(список[5], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.МаксимальныйВыходCO2 = число;

                    if (!double.TryParse(список[6], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.МаксимальныйВыходCO = число;

                    if (!double.TryParse(список[7], NumberStyles.Float, CultureInfo.InvariantCulture, out число))
                    {
                        continue;
                    }
                    нагрузка.МаксимальныйВыходHCL = число;

                    ТиповыеНагрузки.Add(нагрузка);
                }
            }
        }