internal void ClearArrayElement() { if (ValueType.IsArrayOrListType()) { if (ValueType.IsArray) { Value = DrawerUtility.CreateInstance(ValueType); } else { ((IList)Value).Clear(); } } }
internal void RemoveArrayElementAtIndex(int index) { if (ValueType.IsArrayOrListType()) { if (ValueType.IsArray) { Array array = (Array)Value; ArrayUtility.Remove(ref array, index); Value = array; } else { ((IList)Value).RemoveAt(index); } } }
internal void AddArrayElement() { if (ValueType.IsArrayOrListType()) { object element = DrawerUtility.CreateInstance(ValueType.GetElementTypeInArrayOrList()); if (ValueType.IsArray) { Array array = (Array)Value; ArrayUtility.Add(ref array, element); Value = array; } else { ((IList)Value).Add(element); } } }
private void RefreshDrawer() { if (innerDrawer != null) { return; } if (Target != null && Value != null) { TypeDrawer typeDrawer = DrawerUtility.GetTypeDrawerInstance(ValueType); if (typeDrawer != null) { typeDrawer.Label = Label; typeDrawer.ItemDrawer = this; innerDrawer = typeDrawer; } else { InstanceDrawer instanceDrawer = null; if (ValueType.IsArrayOrListType()) { instanceDrawer = new ArrayDrawer(Value); } else if (ValueType.IsStructOrClassType()) { instanceDrawer = new ObjectDrawer(Value); } if (instanceDrawer != null) { instanceDrawer.Header = Label; instanceDrawer.ItemDrawer = this; instanceDrawer.IsShowInherit = ParentDrawer.IsShowInherit; instanceDrawer.IsShowBox = ParentDrawer.IsShowBox; innerDrawer = instanceDrawer; } } } }