Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ControlBindingsConverter.cs / 1 / ControlBindingsConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope="member", Target="System.Windows.Forms.Design.ControlBindingsConverter..ctor()")] namespace System.Windows.Forms.Design { using System; using Microsoft.Win32; using System.Collections; using System.ComponentModel; using System.Globalization; internal class ControlBindingsConverter : TypeConverter { public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { // return "(Bindings)"; // return an empty string, since we don't want a meaningless // string displayed as the value for the expandable Bindings property return ""; } return base.ConvertTo(context, culture, value, destinationType); } public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) { if (value is ControlBindingsCollection) { ControlBindingsCollection collection = (ControlBindingsCollection)value; IBindableComponent control = collection.BindableComponent; Type type = control.GetType(); PropertyDescriptorCollection bindableProperties = TypeDescriptor.GetProperties(control, null); ArrayList props = new ArrayList(); for (int i = 0; i < bindableProperties.Count; i++) { // Create a read only binding if the data source is not one of the values we support. Binding binding = collection[bindableProperties[i].Name]; bool readOnly = !(binding == null || binding.DataSource is IListSource || binding.DataSource is IList || binding.DataSource is Array); DesignBindingPropertyDescriptor property = new DesignBindingPropertyDescriptor(bindableProperties[i], null, readOnly); bool bindable = ((BindableAttribute)bindableProperties[i].Attributes[typeof(BindableAttribute)]).Bindable; if (bindable || !((DesignBinding)property.GetValue(collection)).IsNull) { props.Add(property); } } props.Add(new AdvancedBindingPropertyDescriptor()); PropertyDescriptor[] propArray = new PropertyDescriptor[props.Count]; props.CopyTo(propArray,0); return new PropertyDescriptorCollection(propArray); } return new PropertyDescriptorCollection(new PropertyDescriptor[0]); } public override bool GetPropertiesSupported(ITypeDescriptorContext context) { return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LineServicesRun.cs
- Span.cs
- SiteOfOriginContainer.cs
- CodeGotoStatement.cs
- ButtonColumn.cs
- ServerIdentity.cs
- Helper.cs
- PropertyEmitter.cs
- LinqDataSourceValidationException.cs
- FocusChangedEventArgs.cs
- EntityContainerEntitySet.cs
- FileFormatException.cs
- DBPropSet.cs
- SqlConnectionManager.cs
- RoamingStoreFile.cs
- Library.cs
- SizeValueSerializer.cs
- HorizontalAlignConverter.cs
- TraceHandler.cs
- AbstractDataSvcMapFileLoader.cs
- XmlCharType.cs
- initElementDictionary.cs
- AttributeCollection.cs
- XmlHelper.cs
- Geometry3D.cs
- XmlSchemaException.cs
- LocalizableAttribute.cs
- LinkDescriptor.cs
- ServicePointManagerElement.cs
- NameTable.cs
- CodeObject.cs
- ImpersonationContext.cs
- ConnectionPoolManager.cs
- filewebrequest.cs
- InstallerTypeAttribute.cs
- RoleManagerEventArgs.cs
- ConfigXmlComment.cs
- AnnotationObservableCollection.cs
- ErrorInfoXmlDocument.cs
- FileSystemWatcher.cs
- Stackframe.cs
- GridViewCancelEditEventArgs.cs
- AlignmentYValidation.cs
- SqlExpander.cs
- BeginStoryboard.cs
- PngBitmapEncoder.cs
- ApplicationHost.cs
- InkCanvasAutomationPeer.cs
- ErrorFormatterPage.cs
- FieldNameLookup.cs
- ObjectIDGenerator.cs
- StrongName.cs
- DataGridViewComboBoxCell.cs
- PngBitmapEncoder.cs
- OdbcPermission.cs
- UrlAuthorizationModule.cs
- SecurityElementBase.cs
- DataGridViewDataErrorEventArgs.cs
- tooltip.cs
- Matrix3DStack.cs
- RepeaterItem.cs
- SizeKeyFrameCollection.cs
- DataGridViewColumnHeaderCell.cs
- DelayedRegex.cs
- SqlTriggerContext.cs
- Point3DAnimationBase.cs
- UserNameSecurityTokenAuthenticator.cs
- PasswordRecovery.cs
- ArgumentException.cs
- WindowsTreeView.cs
- SoapSchemaExporter.cs
- UpdateCommandGenerator.cs
- IntegerValidator.cs
- Publisher.cs
- SortExpressionBuilder.cs
- SchemaAttDef.cs
- AuthenticationSection.cs
- SchemaTypeEmitter.cs
- PartialTrustHelpers.cs
- EarlyBoundInfo.cs
- WebPartMenu.cs
- DocumentViewerAutomationPeer.cs
- IncrementalReadDecoders.cs
- XhtmlBasicLabelAdapter.cs
- RectangleHotSpot.cs
- HttpBufferlessInputStream.cs
- VScrollProperties.cs
- EncoderNLS.cs
- NullableBoolConverter.cs
- CustomAttributeBuilder.cs
- ApplicationContext.cs
- InputProcessorProfilesLoader.cs
- ParseChildrenAsPropertiesAttribute.cs
- TimeSpanValidatorAttribute.cs
- SemanticValue.cs
- ConstructorNeedsTagAttribute.cs
- MetadataItemSerializer.cs
- AnnotationDocumentPaginator.cs
- ISessionStateStore.cs
- Visual3DCollection.cs