internal ArrayList OnGUI()
        {
            // Header
            using (new GUILayout.HorizontalScope())
            {
                EditorGUILayout.LabelField(string.Format("{0} [{1}]", _label, Values.Length));
                GUILayout.FlexibleSpace();

                // 要素の追加
                if (GUILayout.Button(EditorGUIUtility.TrIconContent("Toolbar Plus"), "RL FooterButton",
                                     GUILayout.Width(16)))
                {
                    var v = new Value();
                    v.Set(_elementType, "");
                    Values.Add("", v);
                }
            }

            using (new EditorGUI.IndentLevelScope())
            {
                for (var i = 0; i < Values.Length; i++)
                {
                    using (new EditorGUILayout.HorizontalScope())
                    {
                        EditorGUILayout.LabelField("Element " + i);
                        if (GUILayout.Button(EditorGUIUtility.TrIconContent("Toolbar Minus"), "RL FooterButton", GUILayout.Width(16)))
                        {
                            Values.Remove(i);
                            GUIUtility.ExitGUI();
                        }
                    }
                    Values[i].OnGUI();
                }
            }

            return(this);
        }