Code:
/ DotNET / DotNET / 8.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
- AsynchronousChannelMergeEnumerator.cs
- DES.cs
- SynchronizedKeyedCollection.cs
- OracleBinary.cs
- XmlExceptionHelper.cs
- SettingsPropertyCollection.cs
- UInt16Converter.cs
- BinaryWriter.cs
- AppDomainAttributes.cs
- DriveNotFoundException.cs
- ExpressionNormalizer.cs
- WriteLineDesigner.xaml.cs
- PaperSource.cs
- UmAlQuraCalendar.cs
- SourceInterpreter.cs
- Constants.cs
- PackageDigitalSignatureManager.cs
- Thumb.cs
- FeatureAttribute.cs
- PipelineModuleStepContainer.cs
- DateTimeFormatInfo.cs
- GorillaCodec.cs
- DataContractSerializer.cs
- SAPIEngineTypes.cs
- HtmlFormWrapper.cs
- TryExpression.cs
- ProfileServiceManager.cs
- SmtpException.cs
- AppSecurityManager.cs
- BaseTemplateBuildProvider.cs
- TiffBitmapEncoder.cs
- Int32CollectionValueSerializer.cs
- FixedSOMFixedBlock.cs
- CustomWebEventKey.cs
- TileModeValidation.cs
- ArglessEventHandlerProxy.cs
- PageThemeCodeDomTreeGenerator.cs
- VectorAnimationBase.cs
- ConfigurationPermission.cs
- SoapEnumAttribute.cs
- TreeNodeCollection.cs
- CreateCardRequest.cs
- CodeArrayCreateExpression.cs
- DPCustomTypeDescriptor.cs
- WindowExtensionMethods.cs
- ChtmlMobileTextWriter.cs
- ElementUtil.cs
- CodeAttributeArgumentCollection.cs
- Binding.cs
- XPathExpr.cs
- AlternateView.cs
- LinkButton.cs
- FieldBuilder.cs
- DeleteWorkflowOwnerCommand.cs
- HotSpotCollectionEditor.cs
- ReaderOutput.cs
- ObjectDataSourceDisposingEventArgs.cs
- HybridDictionary.cs
- querybuilder.cs
- RootProfilePropertySettingsCollection.cs
- TdsParameterSetter.cs
- TimelineClockCollection.cs
- InlinedAggregationOperator.cs
- DomNameTable.cs
- HwndHostAutomationPeer.cs
- XpsS0ValidatingLoader.cs
- AttachedAnnotationChangedEventArgs.cs
- Profiler.cs
- NavigateEvent.cs
- ConstantSlot.cs
- _StreamFramer.cs
- SchemaImporterExtensionElementCollection.cs
- RegexCharClass.cs
- FileLoadException.cs
- StringPropertyBuilder.cs
- Unit.cs
- HijriCalendar.cs
- Site.cs
- _LazyAsyncResult.cs
- SelectionGlyph.cs
- XappLauncher.cs
- BindingBase.cs
- MenuAdapter.cs
- GetWinFXPath.cs
- CookieProtection.cs
- KnownTypesProvider.cs
- SafePointer.cs
- Cursor.cs
- GeneralTransform.cs
- AssemblyCache.cs
- ZipIOCentralDirectoryFileHeader.cs
- SqlDependencyUtils.cs
- PackagePartCollection.cs
- GenericEnumerator.cs
- SecurityState.cs
- RoutedEventHandlerInfo.cs
- TextTreeRootTextBlock.cs
- PropertyGridEditorPart.cs
- SocketPermission.cs
- BitArray.cs