protected virtual void GeneratePropertySet(GeneratorContext ctx, CodeExpression var, PropertyDescriptor prop)
{
object oval = prop.GetValue (Wrapped);
if (oval == null || (prop.HasDefault && prop.IsDefaultValue (oval)))
return;
CodeExpression val = ctx.GenerateValue (oval, prop.RuntimePropertyType, prop.Translatable && prop.IsTranslated (Wrapped));
CodeExpression cprop;
TypedPropertyDescriptor tprop = prop as TypedPropertyDescriptor;
if (tprop == null || tprop.GladeProperty == prop) {
cprop = new CodePropertyReferenceExpression (var, prop.Name);
} else {
cprop = new CodePropertyReferenceExpression (var, tprop.GladeProperty.Name);
cprop = new CodePropertyReferenceExpression (cprop, prop.Name);
}
ctx.Statements.Add (new CodeAssignStatement (cprop, val));
}