public override void OnInspectorGUI() { DrawDefaultInspector(); this.binder = this.target as BinderBase; GUILayout.Space(4); GUILayout.BeginVertical(GUI.skin.box); GUILayout.Space(4); var context = EditorGUILayout.ObjectField(new GUIContent("Data Context"), this.binder.dataContext, typeof(DataContext), true) as DataContext; if (context == null) { GUILayout.Space(4); if (GUILayout.Button(BindingDefine.FIND_CONTEXT)) { context = this.binder.FindDataContext(); } } if (this.binder.dataContext != context) { Undo.RecordObject(this.target, "Select Data Context"); this.binder.dataContext = context; } if (this.binder.dataContext == null) { GUILayout.Space(4); GUILayout.EndVertical(); return; } BindingField[] arrFields = this.binder.GetBindingFields(); GUILayout.BeginVertical(); for (var i = 0; i < arrFields.Length; i++) { DrawBindingField(arrFields[i]); } GUILayout.EndVertical(); GUILayout.Space(4); GUILayout.EndVertical(); if (Event.current.type == EventType.Repaint) { FilterPopup.SetPopupRect(GUILayoutUtility.GetLastRect()); } }
// Register binding message for child binders void RegisterBindingMessage(bool forceReinit = false) { BinderBase[] binders = GetComponentsInChildren <BinderBase> (true); for (int i = 0; i < binders.Length; i++) { BinderBase binder = binders [i]; if (binder.mDataContext == this) { binder.Init(forceReinit); } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); binder = (BinderBase)target; DataContext context = (DataContext)EditorGUILayout.ObjectField(new GUIContent("Data Context"), binder.mDataContext, typeof(DataContext), true); if (context == null) { GUILayout.Label(BindingDefine.FIND_CONTEXT_AUTO); if (GUILayout.Button(BindingDefine.FIND_CONTEXT)) { context = binder.FindDataContext(); } } if (binder.mDataContext != context) { binder.mDataContext = context; EditorUtility.SetDirty(target); } if (binder.mDataContext == null) { return; } BindingField[] arrFields = binder.GetBindingFields(); GUILayout.BeginVertical(); for (int i = 0; i < arrFields.Length; i++) { DrawBindingField(arrFields [i]); } GUILayout.EndVertical(); if (Event.current.type == EventType.Repaint) { FilterPopup.SetPopupRect(GUILayoutUtility.GetLastRect()); } }