// Setting value from owner to this public override void SetValue(object value) { RefInstance = value; var type = RefInstance.GetType(); if (type != lastStructType) { CurrentInfo = typeSupportCache[type.AssemblyQualifiedName]; SetupUIForType(); lastStructType = type; } for (int i = 0; i < CurrentInfo.Fields.Length; i++) { inputFields[i].Text = CurrentInfo.GetValue(RefInstance, i); } }