private void ExcluirParque_Click(object sender, RoutedEventArgs e) { int index = this.dataGridParqueEolico.SelectedIndex; if (index == -1) { MessageBox.Show("Por favor, selecione um parque eólico."); } else { try { if (MessageBox.Show("Tem certeza que deseja remover o parque eólico selecionado? Atenção, sua exclusão pode implicar na exclusão dos dados já importados associados a este parque.", Constants.CONFIRMATION_CAPTION, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { ParqueEolico parqueSelecionado = (ParqueEolico)this.dataGridParqueEolico.SelectedItem; FactoryController.getInstance().ParqueEolicoController.Delete(parqueSelecionado); this.listaParquesEolicos.Remove((ParqueEolico)this.dataGridParqueEolico.SelectedItem); MessageBox.Show("Parque eólico removido com sucesso."); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
public VisualizarPrevisoes() { try { InitializeComponent(); this.cmbBoxParquesEolicos.ItemsSource = FactoryController.getInstance().ParqueEolicoController.getAll(); } catch (Exception e) { this.txtMessage.Text = Constants.ERROR_OPEN_CONNECTION; } }
public ImportacaoPrevEOL() { try { InitializeComponent(); this.listaParquesEolicos = FactoryController.getInstance().ParqueEolicoController.getAll(); this.LoadFiles(); } catch (Exception e) { this.ShowInfoMessage(e.Message); } }
private void UpdateDatagridRowsAndColumns(bool verTodosOsAtributos) { if (this.cmbBoxParquesEolicos.SelectedItem != null) { ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem; String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString(); BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { List <ParqueEolicoImportacaoPrevEOL> listaDadosImportados = FactoryController.getInstance(). PrevEOL_Controller.getDadosImportados(parqueEolico.Id, this.Limit, verTodosOsAtributos, intervalo); this.Dispatcher.BeginInvoke(new Action(() => { if (listaDadosImportados.Count > 0) { this.ShowDataGrid(); this.dataGridVisualizarDados.ItemsSource = listaDadosImportados; } else { this.ShowMessageEmptyData(); } })); } catch (Exception e) { this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.BusyIndicatorCarregando.IsBusy = false; }; BusyIndicatorCarregando.IsBusy = true; worker.RunWorkerAsync(); } }
public ImportacaoCPTEC() { try { InitializeComponent(); //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaBV.txt", 11); //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaCQ.txt", 1); //FactoryDAO.getInstance().CPTECDAO.importOldFile(CAMINHO_FILES + CAMINHO_ENTRADA_IMPORTACAO + @"\SaidaEN.txt", 10); this.listaParquesEolicos = FactoryController.getInstance().ParqueEolicoController.getAll(); this.LoadFiles(); } catch (Exception e) { this.ShowInfoMessage(e.Message); } }
private void CadastrarParqueEolico_Executed(object sender, ExecutedRoutedEventArgs e) { if (this.txtPotenciaMaxima.Text == null || this.txtPotenciaMaxima.Text.Equals("") || this.txtPotenciaMaxima.Text.Equals("0")) { this.parqueEolico.PotenciaMaxima = 1; } else { this.parqueEolico.PotenciaMaxima = Double.Parse(this.txtPotenciaMaxima.Text); } if (tipo == EnumParqueEolicoFormType.CADASTRAR) { try { FactoryController.getInstance().ParqueEolicoController.cadastrar(this.parqueEolico); //FactoryController.getInstance().PrevisorController.montarEstruturaParaPrevisao(); MessageBox.Show("Parque eólico cadastrado com sucesso."); this.ClearAllFields(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else if (tipo == EnumParqueEolicoFormType.ALTERAR) { try { FactoryController.getInstance().ParqueEolicoController.atualizar(this.parqueEolico); MessageBox.Show("Parque eólico atualizado com sucesso."); this.ClearAllFields(); Main.NavigateTo(EnumNavigateTo.PARQUE_EOLICO_SELECT, null); } catch (Exception ex) { MessageBox.Show(ex.Message); } } e.Handled = true; }
private void carregarParquesEolicos() { if (((ComboBoxItem)cmbBoxTipo.SelectedItem).Tag.Equals("PP")) { this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesCalibrados("PP")); } else { this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesCalibrados("TR")); } this.lstViewParquesEolicos.ItemsSource = this.ListaParquesEolicos; this.ListaParquesEolicosSelecionados = new ObservableCollection <ParqueEolico>(); this.lstViewParquesEolicosSelecionados.ItemsSource = this.ListaParquesEolicosSelecionados; Util.Util.parquesPrevistos = this.ListaParquesEolicosSelecionados; }
public ParqueEolicoSelect() { InitializeComponent(); var worker = new BackgroundWorker(); worker.DoWork += (sender, args) => { try { this.listaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll()); this.Dispatcher.Invoke(new Action(() => { if (this.listaParquesEolicos.Count > 0) { this.ShowParquesEolicos(); } else { this.ShowInfoMessage("Ainda não existe nenhum parque eólico cadastrado no banco de dados até o presente momento."); } this.dataGridParqueEolico.ItemsSource = listaParquesEolicos; })); } catch (Exception e) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(e.Message); })); } }; worker.RunWorkerCompleted += (sender, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.BusyIndicatorCarregando.IsBusy = false; }; worker.RunWorkerAsync(); }
private void carregarParquesEolicos() { if (((ComboBoxItem)cmbBoxIntervalo.SelectedItem).Tag.Equals(Util.Util.DEZ_MINUTOS)) { this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("TR")); } else { if (((ComboBoxItem)cmbBoxTipo.SelectedItem).Tag.Equals("PP")) { this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("PP")); } else { this.ListaParquesEolicos = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getAll_LEFT("VP")); } } this.lstViewParquesEolicos.ItemsSource = this.ListaParquesEolicos; this.ListaParquesEolicosSelecionados = new ObservableCollection <ParqueEolico>(); this.lstViewParquesEolicosSelecionados.ItemsSource = this.ListaParquesEolicosSelecionados; }
private void LoadTreeView() { List <EntradaVentoPotencia> dados = FactoryController.getInstance().PrevisorController.GetInputPrevisaoVentoPotencia(); for (int i = 0; i < dados.Count; i++) { TreeViewItem item = new TreeViewItem(); item.Tag = dados[i]; CheckBox chkBox = new CheckBox(); chkBox.Checked += chkBox_Checked; chkBox.Unchecked += chkBox_Unchecked; chkBox.Content = dados[i].ParqueEolico.Nome; item.Header = chkBox; item.Margin = new Thickness(5); item.ItemsSource = new string[] { dados[i].Dia + "/" + dados[i].Mes + "/" + dados[i].Ano }; this.TreeViewParquesEolicos.Items.Add(item); } }
private void btnExecutarPrevisor_Click(object sender, RoutedEventArgs e) { try { int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count; if (qtdParquesSelecionados > 0) { string tipoSelecionado = ((ComboBoxItem)this.cmbBoxTipo.SelectedItem).Tag.ToString(); BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { int progressoPorAquivo = 100 / qtdParquesSelecionados; for (int i = 0; i < this.ListaParquesEolicosSelecionados.Count; i++) { this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Executando a previsão para o parque: " + this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ")."; })); FactoryController.getInstance().PrevisorController.realizarPrevisao (this.ListaParquesEolicosSelecionados[i], tipoSelecionado); this.Dispatcher.Invoke(new Action(() => { this.processBar.Value += progressoPorAquivo; })); } this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; })); } catch (Exception ex) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { System.Windows.Forms.MessageBox.Show(args.Error.ToString()); } this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Collapsed; this.GridProgressBar.Visibility = Visibility.Collapsed; })); }; this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Visible; this.GridProgressBar.Visibility = Visibility.Visible; })); worker.RunWorkerAsync(); } else { System.Windows.Forms.MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION); } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }
private void ImportCPTEC_Click(object sender, RoutedEventArgs e) { try { this.feedbackMessage.Visibility = Visibility.Hidden; if (files.Length > 0) { int qtdArquivos = files.Length; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { int progressoPorAquivo = 100 / files.Length; int count = 0; foreach (FileInfo file in this.files) { count++; this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Importando arquivo " + count + "/" + qtdArquivos + "."; })); for (int i = 0; i < this.listaParquesEolicos.Count; i++) { string sigla = this.listaParquesEolicos[i].SiglaCPTEC; if (file.Name.IndexOf(sigla, StringComparison.OrdinalIgnoreCase) != -1) { FactoryController.getInstance().CPTEC_Controller.importarArquivoNovo(file.FullName, this.listaParquesEolicos[i].Id); file.CopyTo(CAMINHO_FILES + CAMINHO_SAIDA_IMPORTACAO + "\\" + file.Name, true); File.Delete(file.FullName); break; } } this.Dispatcher.Invoke(new Action(() => { this.processBar.Value += progressoPorAquivo; this.LoadFiles(); })); } this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; })); } catch (Exception ex) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.Dispatcher.Invoke(new Action(() => { HideProgressBar(); })); }; this.Dispatcher.Invoke(new Action(() => { ShowProgressBar(); })); worker.RunWorkerAsync(); } } catch (Exception ex) { this.ShowInfoMessage(ex.Message); } }
private void GerarArquivosTreinamentoVentoPotencia() { try { this.feedbackMessage.Visibility = Visibility.Hidden; string strDataInicial = this.datePickerDataInicial.Text; string strDataFinal = this.datePickerDataFinal.Text; if (strDataInicial.Equals("") || strDataFinal.Equals("")) { MessageBox.Show("Preencha o período desejado para fazer a calibragem.", Constants.WARNNING_CAPTION); } else { int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count; if (qtdParquesSelecionados > 0) { DateTime dataInicial = DateTime.Parse(strDataInicial); DateTime dataFinal = DateTime.Parse(strDataFinal); if (dataFinal < dataInicial) { MessageBox.Show("Desculpe, mas a data inicial tem que ser menor que a data final.", Constants.WARNNING_CAPTION); } else { BackgroundWorker worker = new BackgroundWorker(); String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString(); this.processBar.Value = 0; worker.DoWork += (o, ea) => { try { int progressoPorAquivo = 100 / qtdParquesSelecionados; for (int i = 0; i < qtdParquesSelecionados; i++) { this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Calibrando " + this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ")."; })); FactoryController.getInstance().CalibradorController.gerarArquivoTreinamentoVentoPotencia(this.ListaParquesEolicosSelecionados[i], dataInicial, dataFinal, intervalo); FactoryController.getInstance().CalibradorController.calibrarVentoPotencia(this.ListaParquesEolicosSelecionados[i]); this.ListaParquesEolicosSelecionados[i].Calibracao.FoiCalibrado = 1; this.ListaParquesEolicosSelecionados[i].Calibracao.Data = DateTime.Now; this.Dispatcher.Invoke(new Action(() => { this.processBar.Value += progressoPorAquivo; })); } this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; })); } catch (Exception ex) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Collapsed; this.GridProgressBar.Visibility = Visibility.Collapsed; })); }; this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Visible; this.GridProgressBar.Visibility = Visibility.Visible; })); worker.RunWorkerAsync(); } } else { MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void PreverVentoPotencia_Click(object sender, RoutedEventArgs e) { int qtdParquesSelecionados = this.parquesSelecionados.Count; if (qtdParquesSelecionados > 0) { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { int progressoPorAquivo = 100 / qtdParquesSelecionados; for (int i = 0; i < qtdParquesSelecionados; i++) { this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Executando a previsão para o parque: " + this.parquesSelecionados[i].ParqueEolico.Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ")."; })); FactoryController.getInstance().PrevisorController.PreverVentoPotencia(this.parquesSelecionados[i]); this.Dispatcher.Invoke(new Action(() => { this.processBar.Value += progressoPorAquivo; })); } this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; })); } catch (Exception ex) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Collapsed; this.GridProgressBar.Visibility = Visibility.Collapsed; })); }; this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Visible; this.GridProgressBar.Visibility = Visibility.Visible; })); worker.RunWorkerAsync(); } else { MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION); } }
private void GerarArquivosTreinamentoPotenciaPotencia() { try { this.feedbackMessage.Visibility = Visibility.Hidden; string strDataInicial = this.datePickerDataInicial.Text; string strDataFinal = this.datePickerDataFinal.Text; if (strDataInicial.Equals("") || strDataFinal.Equals("")) { MessageBox.Show("Preencha o período desejado para fazer a calibragem.", Constants.WARNNING_CAPTION); } else { int qtdParquesSelecionados = this.ListaParquesEolicosSelecionados.Count; if (qtdParquesSelecionados > 0) { DateTime dataInicial = DateTime.Parse(strDataInicial); DateTime dataFinal = DateTime.Parse(strDataFinal); if (dataFinal < dataInicial) { MessageBox.Show("Desculpe, mas a data inicial tem que ser menor que a data final.", Constants.WARNNING_CAPTION); } else { BackgroundWorker worker = new BackgroundWorker(); String intervalo = ((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.ToString(); this.processBar.Value = 0; worker.DoWork += (o, ea) => { try { // Esse número de entradas foi feito pra ser variável, mas terminou // ficando constante pra essa etapa do projeto; int numeroDeEntradas = -1; if (intervalo.Equals(Util.Util.DEZ_MINUTOS)) { numeroDeEntradas = 18; } else if (intervalo.Equals(Util.Util.TRINTA_MINUTOS)) { numeroDeEntradas = 6; } else { throw new Exception("Erro! Número de entradas menor que zero!"); } int progressoPorAquivo = 100 / qtdParquesSelecionados; for (int i = 0; i < qtdParquesSelecionados; i++) { this.Dispatcher.Invoke(new Action(() => { this.txtProgressValue.Text = "Calibrando " + this.ListaParquesEolicosSelecionados[i].Nome + " (" + (i + 1) + "/" + qtdParquesSelecionados + ")."; })); bool isTempoReal = false; this.Dispatcher.Invoke(new Action(() => { if (((ComboBoxItem)this.cmbBoxIntervalo.SelectedItem).Tag.Equals(Util.Util.DEZ_MINUTOS)) { isTempoReal = true; } })); FactoryController.getInstance().CalibradorController. gerarArquivosTreinamentoPotenciaPotencia(this.ListaParquesEolicosSelecionados[i], numeroDeEntradas, dataInicial, dataFinal, intervalo, isTempoReal); FactoryController.getInstance().CalibradorController.CalibrarPotenciaPotencia(this.ListaParquesEolicosSelecionados[i], isTempoReal); this.ListaParquesEolicosSelecionados[i].Calibracao.FoiCalibrado = 1; this.ListaParquesEolicosSelecionados[i].Calibracao.Data = DateTime.Now; this.Dispatcher.Invoke(new Action(() => { this.processBar.Value += progressoPorAquivo; })); } this.Dispatcher.Invoke(new Action(() => { this.feedbackMessage.Visibility = Visibility.Visible; })); } catch (Exception ex) { this.Dispatcher.Invoke(new Action(() => { this.ShowInfoMessage(ex.Message); })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Collapsed; this.GridProgressBar.Visibility = Visibility.Collapsed; })); }; this.Dispatcher.Invoke(new Action(() => { this.gridPaternProgressBar.Visibility = Visibility.Visible; this.GridProgressBar.Visibility = Visibility.Visible; })); worker.RunWorkerAsync(); } } else { MessageBox.Show("Por favor, selecione um ou mais parques eólicos.", Constants.WARNNING_CAPTION); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void fillComboBox() { //Posteriormente, essa lista devera ser preenchida com a leitura do banco de dados //ObservableCollection<ParqueEolico> parquesPrevistosLista = new ObservableCollection<ParqueEolico>(); // parquesPrevistosLista.Add(new ParqueEolico("uecq", "uecq", "uecq", 12, 12, null)); // parquesPrevistosLista.Add(new ParqueEolico("uebv", "uebv", "uebv", 12, 12, null)); ObservableCollection <ParqueEolico> parquesPrevistosLista = new ObservableCollection <ParqueEolico>(FactoryController.getInstance().ParqueEolicoController.getParquesPrevistos("TR")); Double[] outputData; Double[] inputData; Double[] inputDataWithSinAndCos; Util.Util.matrixDeValoresPrevistos = new Double[parquesPrevistosLista.Count][]; for (int i = 0; i < parquesPrevistosLista.Count; i++) { inputDataWithSinAndCos = lerArquivoEntradaPrevisor(parquesPrevistosLista[i]); inputData = new Double[inputDataWithSinAndCos.Count() - 2]; int count = 0; for (int j = 0; j < inputDataWithSinAndCos.Count(); j++) { if ((j == 0) || (j == 1)) { continue; } inputData[count] = inputDataWithSinAndCos[j]; count++; } outputData = lerArquivoSaidaPrevisor(parquesPrevistosLista[i]); int sizeOfGraphData = inputData.Count() + outputData.Count(); Double[] graphData = new Double[sizeOfGraphData]; inputData.CopyTo(graphData, 0); outputData.CopyTo(graphData, inputData.Count()); Util.Util.matrixDeValoresPrevistos[i] = graphData; } ComboBox cb = this.Controls.Find("cb_grafico", true).FirstOrDefault() as ComboBox; cb.AllowDrop = true; cb.SelectedIndexChanged += cb_SelectedIndexChanged; /* * ObservableCollection<ParqueEolico> parquesPrevistos1 = new ObservableCollection<ParqueEolico>(); * ParqueEolico p = new ParqueEolico("uebv", "uebv", "uebv", 12, 12, null); * ParqueEolico p2 = new ParqueEolico("uebv2", "uebv2", "uebv2", 12, 12, null); * * parquesPrevistos1.Add(p); * parquesPrevistos1.Add(p2); * * Util.Util.parquesPrevistos = parquesPrevistos1; */ Util.Util.parquesPrevistos = parquesPrevistosLista; cb.DisplayMember = "nome"; cb.DataSource = Util.Util.parquesPrevistos; cb.SelectedIndex = 0; }
private void UpdateDatagridItemsSourceCPTEC() { this.cmbBoxIntervalo.Visibility = Visibility.Hidden; if (this.cmbBoxParquesEolicos.SelectedItem != null) { ParqueEolico parqueEolico = (ParqueEolico)this.cmbBoxParquesEolicos.SelectedItem; BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { try { List <ParqueEolicoImportacaoCPTEC> dados = FactoryController.getInstance(). CPTEC_Controller.getDadosImportados(parqueEolico.Id, this.Limit); this.Dispatcher.BeginInvoke(new Action(() => { if (dados.Count > 0) { this.TreeViewDadosCPTEC.Items.Clear(); } for (int i = 0; i < dados.Count; i++) { TreeViewItem item = new TreeViewItem(); item.Header = "Dia Previsto: " + (dados[i].diaPrevisto + 1).ToString().PadLeft(2, '0') + " | " + dados[i].dia.PadLeft(2, '0') + "/" + dados[i].mes.PadLeft(2, '0') + "/" + dados[i].ano; item.Margin = new Thickness(5); List <string> listVelocidadeDirecao = new List <string>(); List <string> listaVelocidades = dados[i].velocidades; List <string> listaDirecoes = dados[i].direcoes; for (int k = 0; k < listaVelocidades.Count; k++) { listVelocidadeDirecao.Add("Hora: " + k.ToString().PadLeft(2, '0') + ": " + "| Velocidade: " + dados[i].velocidades[k].PadLeft(5, '0') + " " + "| Direção: " + dados[i].direcoes[k]); } item.ItemsSource = listVelocidadeDirecao; this.TreeViewDadosCPTEC.Items.Add(item); } this.ShowTreeView(); })); } catch (Exception e) { this.Dispatcher.BeginInvoke(new Action(() => { this.txtMessage.Text = e.Message; })); } }; worker.RunWorkerCompleted += (param, args) => { if (args.Error != null) { MessageBox.Show(args.Error.ToString()); } this.BusyIndicatorCarregando.IsBusy = false; }; BusyIndicatorCarregando.IsBusy = true; worker.RunWorkerAsync(); } }