Frage

Originaly posted eine Weile zurück auf einem anderen Forum, hoffe ich, ein bisschen mehr Hilfe finden Sie hier:)

Hallo Leute,

Ich bin sicher, dass dies eine ziemlich grundlegende Frage, aber ich bin neu zu viel Programmierung und C #. Ich finde, ich brauche Databindings auf mehrere Steuerelemente löschen und zur Zeit haben:

            lblTableValue1.DataBindings.Clear();
            lblTableValue2.DataBindings.Clear();
            lblTableValue3.DataBindings.Clear();
            lblTableValue4.DataBindings.Clear();
            lblTableValue5.DataBindings.Clear();
            lblTableValue6.DataBindings.Clear();
            lblTableValue7.DataBindings.Clear();

Das kann nicht sein, den besten Weg, dies zu tun oder? Ich brauche auch alle diese Textwerte auf „“, kann ich ihnen Gruppe in someway und rufen klar auf die ganze Gruppe?

Vielen Dank im Voraus G

War es hilfreich?

Lösung

foreach(Control c in this.Controls)
{
    if(c.Name.StartsWith("lblTableValue"))
    {
        c.DataBindings.Clear();
    }
}

Das könnte den Job. Oder wenn Sie eher ein Purist:

foreach(Control c in new Control[]
    {
        lblTableValue1,
        lblTableValue2,
        etc
    })
{
    c.DataBindings.Clear();
}

Andere Tipps

In dieser Art von Szenario, finde ich es am besten, die Kontrollen I aufgenommen werden, in einer Art Behälter, sagen ein Panel manipulieren wollen. Dann Iteration wird einfach:

private void SetLabelText() 
{ 
  foreach (Control c in Panel1.Controls) 
  { 
    if (c is Label && c.ID.StartsWith("lblTableValue"))
    { 
      Label lbl = c as Label; 
      lbl.Text = string.Empty;
      lbl.DataBindings.Clear();
    } 
  } 
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top