protected XtraPropertyInfoCollection GetFilterProps(ColumnView view) { XtraPropertyInfoCollection store = new XtraPropertyInfoCollection(); ArrayList propList = new ArrayList(); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(view); propList.Add(properties.Find("Columns", false)); propList.Add(properties.Find("OptionsView", false)); propList.Add(properties.Find("ActiveFilterEnabled", false)); propList.Add(properties.Find("ActiveFilterString", false)); propList.Add(properties.Find("MRUFilters", false)); propList.Add(properties.Find("ActiveFilter", false)); MethodInfo mi = typeof(SerializeHelper).GetMethod("SerializeProperty", BindingFlags.NonPublic | BindingFlags.Instance); MethodInfo miGetXtraSerializableProperty = typeof(SerializeHelper).GetMethod("GetXtraSerializableProperty", BindingFlags.NonPublic | BindingFlags.Instance); SerializeHelper helper = new SerializeHelper(view); (view as IXtraSerializable).OnStartSerializing(); foreach (PropertyDescriptor prop in propList) { XtraSerializableProperty newXtraSerializableProperty = miGetXtraSerializableProperty.Invoke(helper, new object[] { view, prop }) as XtraSerializableProperty; SerializablePropertyDescriptorPair p = new SerializablePropertyDescriptorPair(prop, newXtraSerializableProperty); mi.Invoke(helper, new object[] { store, view, p, XtraSerializationFlags.None, null }); } (view as IXtraSerializable).OnEndSerializing(); return(store); }
protected override bool ShouldSerializeProperty( SerializeHelper helper, object obj, PropertyDescriptor prop, XtraSerializableProperty xtraSerializableProperty) { if (CheckFilter(obj.GetType(), prop.Name)) { return(false); } return(base.ShouldSerializeProperty(helper, obj, prop, xtraSerializableProperty)); }
protected override void SerializeProperty(XtraPropertyInfoCollection store, object obj, SerializablePropertyDescriptorPair pair, XtraSerializationFlags parentFlags, DevExpress.Utils.OptionsLayoutBase options) { PropertyDescriptor prop = pair.Property; XtraSerializableProperty attr = pair.Attribute; if (attr == null && prop.IsBrowsable && prop.ShouldSerializeValue(obj)) { if (prop.PropertyType != typeof(string) && prop.PropertyType.IsClass) { pair = new SerializablePropertyDescriptorPair(prop, new XtraSerializableProperty(XtraSerializationVisibility.Content)); } else { pair = new SerializablePropertyDescriptorPair(prop, new XtraSerializableProperty()); } } base.SerializeProperty(store, obj, pair, parentFlags, options); }
protected override void CustomGetSerializableProperties(object obj, List <SerializablePropertyDescriptorPair> pairsList, PropertyDescriptorCollection props) { base.CustomGetSerializableProperties(obj, pairsList, props); if (DeserializeHelper == null || DeserializeHelper.RootObject == null || !(DeserializeHelper.RootObject is MyGridView)) { return; } SerializeCustomPropertiesEventArgs args = new SerializeCustomPropertiesEventArgs(obj); ((MyGridView)DeserializeHelper.RootObject).RaiseDeserializeCustomProperties(args); customProperties = args.PropertyNames; if (customProperties == null) { return; } foreach (string customProperty in customProperties) { for (int i = 0; i < pairsList.Count; i++) { if (pairsList[i].Property.Name == customProperty) { XtraSerializableProperty attribute = pairsList[i].Property.Attributes[typeof(XtraSerializableProperty)] as XtraSerializableProperty; if (attribute == null) { attribute = new XtraSerializableProperty(); } PropertyDescriptor prop = pairsList[i].Property; pairsList.RemoveAt(i); pairsList.Insert(i, new SerializablePropertyDescriptorPair(prop, attribute)); break; } } } }
protected override void CustomGetSerializableProperties(object obj, List <SerializablePropertyDescriptorPair> pairsList, PropertyDescriptorCollection props) { base.CustomGetSerializableProperties(obj, pairsList, props); for (int i = 0; i < pairsList.Count; i++) { SerializablePropertyDescriptorPair pair = pairsList[i]; PropertyDescriptor prop = pair.Property; XtraSerializableProperty attr = pair.Attribute; if (attr == null && prop.IsBrowsable) { if (prop.PropertyType != typeof(string) && prop.PropertyType.IsClass) { pair = new SerializablePropertyDescriptorPair(prop, new XtraSerializableProperty(XtraSerializationVisibility.Content)); } else { pair = new SerializablePropertyDescriptorPair(prop, new XtraSerializableProperty()); } pairsList.RemoveAt(i); pairsList.Insert(i, pair); } } }
protected override bool ShouldSerializeProperty( SerializeHelper helper, object obj, PropertyDescriptor prop, XtraSerializableProperty xtraSerializableProperty) { if (CheckFilter(obj.GetType(), prop.Name)) return false; return base.ShouldSerializeProperty(helper, obj, prop, xtraSerializableProperty); }