2013-08-06 8 views
0

У меня есть 10 ярлыков и объект с 10 свойствами. Я хочу иметь петлю, которая накладывает на первую метку первую собственность объекта, на вторую метку второе свойство объекта и т. Д.Изменение свойства с помощью цикла

Моя проблема заключается в том, чтобы изменить свойство Название объекта с петлей, потому что это не строка ...

_Label1.Fill = object .Color1;  
_Label2.Fill = object .Color2;  
_Label3.Fill = object .Color3; 
+1

Посмотрите на массивы. – Leri

+0

Поместите десять значений свойств в массив; сделайте то же самое с ярлыками. Затем циклически перебирайте массивы параллельно и задайте. – Jon

+4

Мне кажется, что у вас должна быть коллекция этикеток и коллекция цветов. Наличие свойств Foo1, Foo2 и т. Д. Всегда является плохим знаком. –

ответ

3

вы могли бы добиться этого с отражением, как это:

for(int i= 1; i<= 10; i++) 
{ 
    Label[i-1].Fill = (Color)object.GetType().GetProperty("Color" + i.ToString()).GetValue(object, null); 
} 

Я полагаю, что у вас есть метки в виде массива или списка и что Свойства цвета имеют тип Color

+0

Это сработало отлично, но мне пришлось изменить GetValue на ... GetValue (object, null). – Bulli

+0

О, я отредактирую это. –