Кто-нибудь знает, как установить свойство второго уровня с помощью отражения?В случае, если я хочу установить ширину, скажем, StackPanel, это прекрасно работает:
PropertyInfo pi = stp.GetType().GetProperty("Width", BindingFlags.Public | BindingFlags.Instance);
if (null != pi)
{
pi.SetValue(stp, Convert.ChangeType("100", pi.PropertyType), null);
}
Но если я хочу установить Margin.Left:
PropertyInfo pi = stp.GetType().GetProperty("Margin.Left", BindingFlags.Public | BindingFlags.Instance);
if (null != pi)
{
pi.SetValue(stp, Convert.ChangeType("100", pi.PropertyType), null);
}
Это не такработать на всех.пи ноль.Я не могу получить действительную информацию о недвижимости.Попытка получить действительное FieldInfo также не удалась:
FieldInfo prop = stp.GetType().GetField("Margin.Left", BindingFlags.Public | BindingFlags.Instance);
if (null != prop)
{
prop.SetValue(stp, Convert.ChangeType("20", prop.FieldType));
}