То, что я пытаюсь сделать, это вызвать метод свойства, используя Reflection. У меня есть исходный элемент управления (ComboBox), PropertyInfo свойства (ComboBox.Items) и имя метода (ComboBox.Items.Add). Я попробовал код ниже, чтобы получить, изменить, установить, но он не работает, потому что у элементов нет сеттера.
PropertyInfo p = controlType.GetProperty(propertyName); // gets the property ('Items')
MethodInfo m = p.PropertyType.GetMethod(methodName); // gets the method ('Items.Add')
object o = p.GetValue(newControl, null); // gets the current 'Items'
m.Invoke(o, new object[] { newValue }); // invokes 'Add' which works
p.SetValue(newControl, o, null); // exception: 'Items' has no setter
Есть ли у кого-нибудь советы?
Спасибо