private void EditSignalPart()
 {
     if (SelectedItems.Count > 0)
     {
         object sft = SelectedItems[0].Tag;
         var form = new SignalFunctionTypeForm();
         form.SignalFunctionType = sft;
         SetAvailableParts(form);
         if (DialogResult.OK == form.ShowDialog())
         {
             sft = form.SignalFunctionType;
             SelectedItems[0].Tag = sft;
             var signalType = sft as SignalFunctionType;
             var el = sft as XmlElement;
             if (signalType != null)
             {
                 SelectedItems[0].SubItems[0].Text = signalType.GetType().Name;
                 SelectedItems[0].SubItems[1].Text = signalType.name;
                 SelectedItems[0].SubItems[2].Text = signalType.type;
                 SelectedItems[0].SubItems[3].Text = signalType.In;
             }
             else if (el != null)
             {
                 var item = new ListViewItem(el.LocalName);
                 item.SubItems.Add((el.HasAttribute("name"))
                     ? el.GetAttribute("name")
                     : "");
                 item.SubItems.Add((el.HasAttribute("type"))
                     ? el.GetAttribute("type")
                     : "");
                 item.SubItems.Add((el.HasAttribute("In"))
                     ? el.GetAttribute("In")
                     : "");
                 item.Tag = el;
             }
         }
     }
 }
 private void AddSignalPart()
 {
     object sft = null;
     var form = new SignalFunctionTypeForm();
     SetAvailableParts(form);
     if (DialogResult.OK == form.ShowDialog())
     {
         sft = form.SignalFunctionType;
         AddSignalPart(sft);
     }
 }