Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DesignBindingPropertyDescriptor.cs / 1 / DesignBindingPropertyDescriptor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System; using System.ComponentModel; ////// /// internal class DesignBindingPropertyDescriptor : PropertyDescriptor { private static TypeConverter designBindingConverter = new DesignBindingConverter(); private PropertyDescriptor property; private bool readOnly; // base.AttributeArray ends up calling the virtual FillAttributes, but we do not override it, so we should be okay. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] internal DesignBindingPropertyDescriptor(PropertyDescriptor property, Attribute[] attrs, bool readOnly) : base(property.Name, attrs) { this.property = property; this.readOnly = readOnly; if (base.AttributeArray != null && base.AttributeArray.Length > 0) { Attribute[] newAttrs = new Attribute[AttributeArray.Length + 2]; AttributeArray.CopyTo(newAttrs, 0); newAttrs[AttributeArray.Length-1] = NotifyParentPropertyAttribute.Yes; newAttrs[AttributeArray.Length] = RefreshPropertiesAttribute.Repaint; base.AttributeArray = newAttrs; } else { base.AttributeArray = new Attribute[]{NotifyParentPropertyAttribute.Yes, RefreshPropertiesAttribute.Repaint}; } } ///Provides a property descriptor for design time data binding properties. ////// /// public override Type ComponentType { get { return typeof(ControlBindingsCollection); } } ///Gets or sets the type of the component that owns the property. ////// /// public override TypeConverter Converter { get { return designBindingConverter; } } ///Gets or sets the type converter. ////// /// public override bool IsReadOnly { get { return readOnly; } } ///Indicates whether the property is read-only. ////// /// public override Type PropertyType { get { return typeof(DesignBinding); } } ///Gets or sets the type of the property. ////// /// public override bool CanResetValue(object component) { return !GetBinding((ControlBindingsCollection)component, property).IsNull; } ///Gets a value indicating whether the specified component can reset the value /// of the property. ////// /// public override object GetValue(object component) { return GetBinding((ControlBindingsCollection)component, property); } ///Gets a value from the specified component. ////// /// public override void ResetValue(object component) { SetBinding((ControlBindingsCollection)component, property, DesignBinding.Null); } ///Resets the value of the specified component. ////// /// public override void SetValue(object component, object value) { SetBinding((ControlBindingsCollection)component, property, (DesignBinding)value); OnValueChanged(component, EventArgs.Empty); } ///Sets the specified value for the specified component. ////// /// public override bool ShouldSerializeValue(object component) { return false; } private static void SetBinding(ControlBindingsCollection bindings, PropertyDescriptor property, DesignBinding designBinding) { // this means it couldn't be parsed. if (designBinding == null) return; Binding listBinding = bindings[property.Name]; if (listBinding != null) { bindings.Remove(listBinding); } if (!designBinding.IsNull) { bindings.Add(property.Name, designBinding.DataSource, designBinding.DataMember); } } private static DesignBinding GetBinding(ControlBindingsCollection bindings, PropertyDescriptor property) { Binding listBinding = bindings[property.Name]; if (listBinding == null) return DesignBinding.Null; else return new DesignBinding(listBinding.DataSource, listBinding.BindingMemberInfo.BindingMember); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.Indicates whether the specified component should persist the value. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TransformProviderWrapper.cs
- ObjectToken.cs
- EntityDataSourceContainerNameItem.cs
- TextPenaltyModule.cs
- TouchFrameEventArgs.cs
- DateTimeOffsetAdapter.cs
- HwndSubclass.cs
- TimeoutValidationAttribute.cs
- SettingsProperty.cs
- TypeLoadException.cs
- UInt16Storage.cs
- LinkedResource.cs
- ProgressBarRenderer.cs
- SHA512Cng.cs
- DocumentScope.cs
- ObjectComplexPropertyMapping.cs
- HwndStylusInputProvider.cs
- ExtensibleSyndicationObject.cs
- XmlReflectionImporter.cs
- LOSFormatter.cs
- SoapAttributeOverrides.cs
- FormViewDeletedEventArgs.cs
- CodeTypeDeclarationCollection.cs
- _ListenerRequestStream.cs
- TagElement.cs
- BindingList.cs
- LinkConverter.cs
- Base64Decoder.cs
- PublishLicense.cs
- OutOfProcStateClientManager.cs
- mediapermission.cs
- XmlNodeChangedEventManager.cs
- ReceiveActivityDesignerTheme.cs
- ParameterModifier.cs
- XmlElementCollection.cs
- InternalException.cs
- OdbcPermission.cs
- MailWriter.cs
- CopyCodeAction.cs
- MetadataProperty.cs
- WaitHandle.cs
- QueryInterceptorAttribute.cs
- CredentialCache.cs
- WeakReferenceKey.cs
- TypedCompletedAsyncResult.cs
- TaskExceptionHolder.cs
- AdapterUtil.cs
- ListInitExpression.cs
- PreservationFileReader.cs
- GenerateDerivedKeyRequest.cs
- DataObjectMethodAttribute.cs
- Event.cs
- _ScatterGatherBuffers.cs
- QilInvoke.cs
- ErrorLog.cs
- CurrentTimeZone.cs
- BeginEvent.cs
- RIPEMD160.cs
- DecimalStorage.cs
- ComboBoxRenderer.cs
- CodeFieldReferenceExpression.cs
- InvalidAsynchronousStateException.cs
- BigInt.cs
- XmlName.cs
- ListMarkerLine.cs
- ExceptionUtility.cs
- SqlNotificationEventArgs.cs
- ToolboxControl.cs
- SettingsBase.cs
- XmlAttributeProperties.cs
- RtfToXamlReader.cs
- TableLayoutPanelBehavior.cs
- TraceProvider.cs
- ProxyWebPartManager.cs
- Wrapper.cs
- XamlFigureLengthSerializer.cs
- ListBoxItemAutomationPeer.cs
- XPathArrayIterator.cs
- DuplicateWaitObjectException.cs
- UnionCqlBlock.cs
- Instrumentation.cs
- DependencyPropertyDescriptor.cs
- RsaEndpointIdentity.cs
- ApplicationServiceHelper.cs
- TemplateAction.cs
- RouteItem.cs
- EncodingNLS.cs
- SortableBindingList.cs
- RenderingEventArgs.cs
- DocComment.cs
- ControlEvent.cs
- EndOfStreamException.cs
- ObjectDataSourceFilteringEventArgs.cs
- ArrangedElementCollection.cs
- ActivityFunc.cs
- HideDisabledControlAdapter.cs
- PageSettings.cs
- DESCryptoServiceProvider.cs
- ValidationPropertyAttribute.cs
- TreeViewImageIndexConverter.cs