2016-04-08 10 views
0

Wie ist es möglich, mehrere Objekte in einer Schleife zu bearbeiten? Zum Beispiel haben Sie 30 Tasten und möchten ihre Hintergrundfarbe ändern. Sie heißen button1, button2 und so weiter.Bearbeiten mehrerer Objekte anhand ihres Namens in einer Schleife

for (int i=1; i<31; i++) 
{ 
    button+i.BACKGROUND.COLOR = AWESOME.BACKGROUND.COLOR; 
} 

Also was ist die richtige Syntax für "button + i." oder gibt es einen effizienteren Weg, dies zu tun?

+3

sie Legen Sie in einem 'Collection' und arbeiten dann mit diese 'Sammlung'. –

+1

Warum nicht ein Array oder eine Liste von Schaltflächen dafür erstellen? –

+0

WPF? WinForms? WebForms? MVC? ...? –

Antwort

0

Können Sie alle Schaltflächen in eine Liste einfügen und dann foreach verwenden?

List<Button> buttons = new List<Button>(); 
//at some point, in a constructor or Loaded event add all the buttons that have been created to the list 
foreach(var button in buttons) 
{ 
} 

Sie könnten theoretisch die Tasten über Reflexion erhalten und sie fügen irgendwann zu einer Liste, wenn Sie die Tasten wissen existieren:

var t = this.GetType(); 

var fields = t.GetFields(BindingFlags.NonPublic | 
        BindingFlags.Instance); 
//assuming you are doing this in a xaml.cs, if not you may need to change 
// the above to GetProperties or use Public flag, depending on how your buttons 
// are defined. 
foreach (var f in fields) 
{ 
    if (f.FieldType == typeof (Button)) 
     _buttons.Add(f.GetValue(this)); 

} 
Verwandte Themen