Code:
/ DotNET / DotNET / 8.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
- RayMeshGeometry3DHitTestResult.cs
- _DigestClient.cs
- PropertyTabChangedEvent.cs
- MatrixCamera.cs
- LinkedList.cs
- ProcessModelInfo.cs
- ResourcePermissionBase.cs
- ColorTransformHelper.cs
- SchemaNamespaceManager.cs
- FunctionDetailsReader.cs
- MSAANativeProvider.cs
- _FtpDataStream.cs
- EventMappingSettings.cs
- QilScopedVisitor.cs
- PtsHost.cs
- OracleException.cs
- XhtmlBasicCalendarAdapter.cs
- ExpandButtonVisibilityConverter.cs
- WebPartEventArgs.cs
- PopupRootAutomationPeer.cs
- ContainerParagraph.cs
- DragDeltaEventArgs.cs
- TimeSpanStorage.cs
- DataBindingCollection.cs
- ConfigurationElementProperty.cs
- QueueProcessor.cs
- ResourceExpression.cs
- EntityContainerRelationshipSet.cs
- Executor.cs
- BuilderInfo.cs
- TransformGroup.cs
- CapabilitiesSection.cs
- SignatureDescription.cs
- TypeSource.cs
- DataGridViewAccessibleObject.cs
- SqlDelegatedTransaction.cs
- FilterEventArgs.cs
- WebPartVerbsEventArgs.cs
- MainMenu.cs
- TextServicesManager.cs
- TreeNodeCollection.cs
- TextViewSelectionProcessor.cs
- DataControlField.cs
- BoundColumn.cs
- ProviderCollection.cs
- ParallelEnumerableWrapper.cs
- ZipIOCentralDirectoryBlock.cs
- NamespaceInfo.cs
- DirectionalLight.cs
- XmlSchemaSimpleContentExtension.cs
- WindowsFormsSectionHandler.cs
- StoreItemCollection.cs
- LinkedList.cs
- ReturnEventArgs.cs
- Image.cs
- ParseChildrenAsPropertiesAttribute.cs
- XmlDataImplementation.cs
- TCEAdapterGenerator.cs
- SQLConvert.cs
- ScopeElement.cs
- PolyLineSegment.cs
- BitmapScalingModeValidation.cs
- MimeTypeAttribute.cs
- UserPersonalizationStateInfo.cs
- PageContentCollection.cs
- HitTestDrawingContextWalker.cs
- ToolStripDropDownMenu.cs
- DoubleUtil.cs
- StreamUpdate.cs
- assemblycache.cs
- CodeObject.cs
- SupportsPreviewControlAttribute.cs
- CharEntityEncoderFallback.cs
- InputLanguageProfileNotifySink.cs
- ReflectionTypeLoadException.cs
- XamlPathDataSerializer.cs
- ToolStripItem.cs
- HttpSocketManager.cs
- ImageListUtils.cs
- WebPartEditorApplyVerb.cs
- AxisAngleRotation3D.cs
- MsmqIntegrationBinding.cs
- Blend.cs
- DynamicArgumentDesigner.xaml.cs
- HtmlGenericControl.cs
- BitmapSourceSafeMILHandle.cs
- BamlRecords.cs
- CalendarItem.cs
- WaitHandleCannotBeOpenedException.cs
- XmlLoader.cs
- WebPartTracker.cs
- AlphabetConverter.cs
- RelationshipDetailsCollection.cs
- CanonicalFormWriter.cs
- ToolboxDataAttribute.cs
- UnicastIPAddressInformationCollection.cs
- EventProvider.cs
- XmlConvert.cs
- IconEditor.cs
- DataGridViewAutoSizeModeEventArgs.cs