Пример #1
0
 private void AddElement()
 {
     using (AddElementDialog dialog = new AddElementDialog())
     {
         dialog.EnsureButtonClick += (sender1, e1) =>
         {
             List <ElementModel> emb = new List <ElementModel>();
             int span = GetSpan(dialog.DataType);
             for (int j = 0, i = 0; j < dialog.AddNums; i += span, j++)
             {
                 ElementModel ele = new ElementModel(dialog.IntrasegmentType != string.Empty, dialog.DataType);
                 ele.AddrType         = dialog.AddrType;
                 ele.DataType         = dialog.DataType;
                 ele.StartAddr        = (uint)(dialog.StartAddr + i);
                 ele.IntrasegmentType = dialog.IntrasegmentType;
                 ele.IntrasegmentAddr = dialog.IntrasegmentAddr;
                 emb.Add(ele);
             }
             Manager.Add(emb);
             foreach (ElementModel ele in emb)
             {
                 CurrentTable.AddElement(
                     Manager.Get(ele));
             }
             dialog.Close();
         };
         dialog.ShowDialog();
     }
 }
 private void ChangeDialogStyle(AddElementDialog dialog, ElementModel element)
 {
     dialog.Title = string.Format(Properties.Resources.Variable_Modification);
     dialog.Themetextblock.Text          = string.Format(Properties.Resources.Variable_Modification);
     dialog.stackpanel.Visibility        = Visibility.Hidden;
     dialog.comboBox.SelectedIndex       = (int)Enum.Parse(typeof(ElementAddressType), element.AddrType);
     dialog.textBox.Text                 = element.StartAddr.ToString();
     dialog.DataTypeCombox.SelectedIndex = element.DataType == 0 ? 0 : element.DataType - 1;
     if (element.IsIntrasegment)
     {
         dialog.checkbox1.IsChecked     = true;
         dialog.comboBox1.SelectedIndex = element.IntrasegmentType == string.Format("V") ? 0 : 1;
         dialog.textBox1.Text           = element.IntrasegmentAddr.ToString();
     }
 }
 private bool IsElementAdded(AddElementDialog dialog, ElementModel element)
 {
     if (Elements.ToList().Exists(x =>
     {
         if (x == element)
         {
             return(false);
         }
         return(x.AddrType == dialog.AddrType && x.StartAddr == dialog.StartAddr && dialog.IntrasegmentType == x.IntrasegmentType && dialog.IntrasegmentAddr == x.IntrasegmentAddr);
     }))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private void ShowAddDialog(ElementModel element)
 {
     using (AddElementDialog dialog = new AddElementDialog())
     {
         ChangeDialogStyle(dialog, element);
         dialog.EnsureButtonClick += (sender1, e1) =>
         {
             if (!IsElementAdded(dialog, element))
             {
                 if (dialog.IntrasegmentType != string.Empty)
                 {
                     element.IsIntrasegment   = true;
                     element.IntrasegmentType = dialog.IntrasegmentType;
                     element.IntrasegmentAddr = dialog.IntrasegmentAddr;
                 }
                 else
                 {
                     element.IsIntrasegment   = false;
                     element.IntrasegmentType = string.Empty;
                     element.IntrasegmentAddr = 0;
                 }
                 element.DataType  = dialog.DataType;
                 element.AddrType  = dialog.AddrType;
                 element.StartAddr = dialog.StartAddr;
                 element.ShowTypes = dialog.DataTypes;
                 element.ShowPropertyChanged();
                 dialog.Close();
             }
             else
             {
                 LocalizedMessageBox.Show(Properties.Resources.Message_Element_Has_Added, LocalizedMessageIcon.Information);
             }
         };
         dialog.ShowDialog();
     }
 }