Подскажите как изменить свойство зная строковой путь к нему
От: Alexander_fx  
Дата: 20.12.13 13:25
Оценка:
Привет
есть строковой путь к свойству
Object1.Object2.Object2.Property

как получить(изменить) значение этого свойства зная его тип и имея инстанс Object1?

в биндингах все просто = Binding Path=Object1.Object2.Object2.Property

но как сделать это же через код не имея DependencyPrperty
Re: Подскажите как изменить свойство зная строковой путь к нему
От: Sergey_BG Россия  
Дата: 20.12.13 14:25
Оценка:
Здравствуйте, Alexander_fx, Вы писали:
A_>в биндингах все просто = Binding Path=Object1.Object2.Object2.Property

Я не пробовал, но если Object2 и Object2 тоже проперти, то здесь надо три раза найти проперти...
А как это сделать один раз написано здесь например.
Сергей
Re: Подскажите как изменить свойство зная строковой путь к нему
От: Sinclair Россия https://github.com/evilguest/
Дата: 23.12.13 04:05
Оценка: +1
Здравствуйте, Alexander_fx, Вы писали:

A_>Привет

A_>есть строковой путь к свойству
A_>Object1.Object2.Object2.Property

A_>как получить(изменить) значение этого свойства зная его тип и имея инстанс Object1?


A_>в биндингах все просто = Binding Path=Object1.Object2.Object2.Property


A_>но как сделать это же через код не имея DependencyPrperty

public static void SetPropertyValue(object o, string path, object v)
{
   SetPropertyValue(o, path.Split('.'), v);
}
public static void SetPropertyValue(object o, string[] path, object v)
{
  PropertyInfo propInfo = null;
  foreach(var propName in path)
  {
    propInfo = o.GetType().GetProperty(propName);
    o = propInfo.GetValue(o);
  }
  propInfo.SetValue(o, v);
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.