/// <summary>
 /// Add credit charge reference.
 /// </summary>
 private void CreditChargeEdit_Click(object sender, EventArgs e)
 {
     try
     {
         if (CreditChargeView.SelectedItems.Count == 1)
         {
             GXDLMSAccount target             = Target as GXDLMSAccount;
             ListViewItem  li                 = CreditChargeView.SelectedItems[0];
             GXCreditChargeConfiguration item = li.Tag as GXCreditChargeConfiguration;
             GXAccountCreditChargeDlg    dlg  = new GXAccountCreditChargeDlg(item, target.Parent);
             if (dlg.ShowDialog(this) == DialogResult.OK)
             {
                 li.SubItems[0].Text = item.ChargeReference;
                 li.SubItems[1].Text = item.CreditReference;
                 li.SubItems[2].Text = item.CollectionConfiguration.ToString();
                 errorProvider1.SetError(CreditChargeView, Properties.Resources.ValueChangedTxt);
                 Target.UpdateDirty(11, target.CreditChargeConfigurations);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(this, ex.Message, "Error",
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
 public GXAccountCreditChargeDlg(GXCreditChargeConfiguration target, GXDLMSObjectCollection objects)
 {
     InitializeComponent();
     Target = target;
     foreach (var it in Enum.GetValues(typeof(CreditCollectionConfiguration)))
     {
         //None is not added.
         if ((int)it != 0)
         {
             ConfigurationLb.Items.Add(it, (Target.CollectionConfiguration & (CreditCollectionConfiguration)it) != 0);
         }
     }
     foreach (GXDLMSObject it in objects.GetObjects(Enums.ObjectType.Credit))
     {
         CreditCb.Items.Add(it);
         if (target.CreditReference == it.LogicalName)
         {
             CreditCb.SelectedItem = it;
         }
     }
     foreach (GXDLMSObject it in objects.GetObjects(Enums.ObjectType.Charge))
     {
         ChargeCb.Items.Add(it);
         if (target.ChargeReference == it.LogicalName)
         {
             ChargeCb.SelectedItem = it;
         }
     }
 }
 /// <summary>
 /// Add credit charge reference.
 /// </summary>
 private void CreditChargeRemove_Click(object sender, EventArgs e)
 {
     try
     {
         GXDLMSAccount target = Target as GXDLMSAccount;
         while (CreditChargeView.SelectedItems.Count != 0)
         {
             ListViewItem li = CreditChargeView.SelectedItems[0];
             GXCreditChargeConfiguration item = li.Tag as GXCreditChargeConfiguration;
             CreditChargeView.Items.Remove(li);
             errorProvider1.SetError(CreditChargeView, Properties.Resources.ValueChangedTxt);
             Target.UpdateDirty(11, target.CreditChargeConfigurations);
             target.CreditChargeConfigurations.Remove(item);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(this, ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }