private void SetChildrenImpl(IEnumerable <MemberInfo> members, bool verifyReflectedType) { foreach (var member in members) { if (verifyReflectedType && !member.ReflectedType.IsAssignableFrom(ValueType)) { var msg = string.Format( @"Member of ""{0}"" expected, got ""{1}"".", ValueType, member.ReflectedType); throw new ArgumentException(msg, "members"); } var child = GetChild(member); if (child != null) { continue; } var childName = member.Name; var childState = DrawerStates.Get(HierarchicalName + '.' + childName); child = ValueDrawer.Create( member.DeclaringType, MemberInfoUtil.MemberTypeOf(member), childName, null, childState); Assert.IsTrue(AddMapping(member, child), string.Format( @"Failed to add member mapping from ""{0}"" to ""{1}"".", member, child.HierarchicalName)); } }
protected virtual void ResetVisibility(bool bySavedStates) { var state = bySavedStates ? DrawerStates.Get(HierarchicalName) : null; SelfVisible = state != null ? state.SelfVisible : DefaultSelfVisible; ChildrenVisible = state != null ? state.ChildrenVisible : IsRoot; }
public bool ApplySavedState() { var state = DrawerStates.Get(HierarchicalName); if (state == null) { return(false); } ApplyState(state); return(true); }