public static bool Get_IsRemovedFromViewModel(IRemovedFromViewModel instance) { RemoveFromViewModelAttribute attr = ((IModelMember)instance).MemberInfo.FindAttribute <RemoveFromViewModelAttribute>(); if (attr != null) { return(attr.IsPropertyRemoved); } else { return(false); } }
public override void UpdateNode(ModelNode node) { foreach (IModelView view in (IModelViews)node) { ArrayList itemsToRemove = new ArrayList(); if (view is IModelDetailView) { foreach (IModelViewItem item in ((IModelDetailView)view).Items) { if (item is IModelMemberViewItem) { IRemovedFromViewModel member = ((IModelMemberViewItem)item).ModelMember as IRemovedFromViewModel; if (member != null && member.IsRemovedFromViewModel) { itemsToRemove.Add(item); } } } } if (view is IModelListView) { foreach (IModelColumn column in ((IModelListView)view).Columns) { IRemovedFromViewModel member = column.ModelMember as IRemovedFromViewModel; if (member != null && member.IsRemovedFromViewModel) { itemsToRemove.Add(column); } } } foreach (IModelNode item in itemsToRemove) { item.Remove(); } if (view is IModelDetailView && itemsToRemove.Count > 0) { IModelViewLayout layoutModel = ((IModelDetailView)view).Layout; layoutModel[0].Remove(); new ModelDetailViewLayoutNodesGenerator().GenerateNodes((ModelNode)layoutModel); } } }