private void VerifyNewParam(string key, string value, Params Type) { int EvIndex = ((Pair)ParamGrid.Tag).EvIndex, TrIndex = ((Pair)ParamGrid.Tag).TrIndex; switch (Type) { case Params.Text: if (!(((EvIndex != -1) && (NowView.Traces[TrIndex].Events[EvIndex].Text_Parameters.Keys.Contains(key))) || (((EvIndex == -1) && (NowView.Traces[TrIndex].Text_Parameters.Keys.Contains(key)))))) { AddWin.Close(); AddWin = null; if (EvIndex != -1) NowView.Traces[TrIndex].Events[EvIndex].Text_Parameters.Add(key, value); else NowView.Traces[TrIndex].Text_Parameters.Add(key, value); RefreshParams(); } else { MessageBox.Show("Параметр с таким именем уже существует"); AddWin.Activate(); } break; case Params.Bool: if (!(((EvIndex != -1) && (NowView.Traces[TrIndex].Events[EvIndex].Bool_Parameters.Keys.Contains(key))) || (((EvIndex == -1) && (NowView.Traces[TrIndex].Bool_Parameters.Keys.Contains(key)))))) { AddWin.Close(); AddWin = null; if (EvIndex != -1) NowView.Traces[TrIndex].Events[EvIndex].Bool_Parameters.Add(key, bool.Parse(value)); else NowView.Traces[TrIndex].Bool_Parameters.Add(key, bool.Parse(value)); RefreshParams(); } else { MessageBox.Show("Параметр с таким именем уже существует"); AddWin.Activate(); } break; case Params.Int: if (!(((EvIndex != -1) && (NowView.Traces[TrIndex].Events[EvIndex].Int_Parameters.Keys.Contains(key))) || (((EvIndex == -1) && (NowView.Traces[TrIndex].Int_Parameters.Keys.Contains(key)))))) { AddWin.Close(); AddWin = null; if (EvIndex != -1) NowView.Traces[TrIndex].Events[EvIndex].Int_Parameters.Add(key, int.Parse(value)); else NowView.Traces[TrIndex].Int_Parameters.Add(key, int.Parse(value)); RefreshParams(); } else { MessageBox.Show("Параметр с таким именем уже существует"); AddWin.Activate(); } break; case Params.Double: if (!(((EvIndex != -1) && (NowView.Traces[TrIndex].Events[EvIndex].Double_Parameters.Keys.Contains(key))) || (((EvIndex == -1) && (NowView.Traces[TrIndex].Double_Parameters.Keys.Contains(key)))))) { AddWin.Close(); AddWin = null; if (EvIndex != -1) NowView.Traces[TrIndex].Events[EvIndex].Double_Parameters.Add(key, double.Parse(value)); else NowView.Traces[TrIndex].Double_Parameters.Add(key, double.Parse(value)); RefreshParams(); } else { MessageBox.Show("Параметр с таким именем уже существует"); AddWin.Activate(); } break; } }
void AddWin_Closing(object sender, System.ComponentModel.CancelEventArgs e) { AddWin = null; }
private void Button_Click_2(object sender, RoutedEventArgs e) { if (AddWin == null) { AddWin = new Window1(); AddWin.Show(); AddWin.Closing += AddWin_Closing; AddWin.GoodParam += VerifyNewParam; } else AddWin.Activate(); }