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
- DataDesignUtil.cs
- HttpWebResponse.cs
- MessageSecurityOverMsmqElement.cs
- ContextDataSource.cs
- RuntimeIdentifierPropertyAttribute.cs
- EventItfInfo.cs
- Win32Exception.cs
- _Rfc2616CacheValidators.cs
- SetIndexBinder.cs
- UInt64Converter.cs
- _SslStream.cs
- OptimizedTemplateContentHelper.cs
- DBProviderConfigurationHandler.cs
- StreamWriter.cs
- CodeRegionDirective.cs
- ColumnHeader.cs
- CodeAssignStatement.cs
- CookielessHelper.cs
- EpmCustomContentSerializer.cs
- SqlDataSourceEnumerator.cs
- BufferModesCollection.cs
- DataTransferEventArgs.cs
- SupportingTokenSecurityTokenResolver.cs
- PreservationFileWriter.cs
- TransformerInfoCollection.cs
- FullTextState.cs
- AccessibleObject.cs
- QueryPageSettingsEventArgs.cs
- DataSourceHelper.cs
- BuildResultCache.cs
- IgnoreSection.cs
- TextDecorationCollectionConverter.cs
- ValidationManager.cs
- Timeline.cs
- SortExpressionBuilder.cs
- AttributeCollection.cs
- WorkItem.cs
- HyperLinkField.cs
- XmlStringTable.cs
- NonBatchDirectoryCompiler.cs
- MessageDesigner.cs
- CancelEventArgs.cs
- WorkItem.cs
- TdsParserStaticMethods.cs
- ServiceDeploymentInfo.cs
- ForwardPositionQuery.cs
- FontStretch.cs
- DocumentOrderComparer.cs
- IssuanceTokenProviderState.cs
- ToolStripOverflowButton.cs
- TypeBrowser.xaml.cs
- WebServiceMethodData.cs
- DynamicMetaObjectBinder.cs
- BufferedWebEventProvider.cs
- SchemaNamespaceManager.cs
- OleDbStruct.cs
- PathTooLongException.cs
- CoordinationService.cs
- ContainerFilterService.cs
- HostingEnvironment.cs
- QueryOpeningEnumerator.cs
- ScrollData.cs
- DbProviderFactory.cs
- ISessionStateStore.cs
- PagesSection.cs
- AbstractExpressions.cs
- CqlParserHelpers.cs
- Ref.cs
- DiagnosticsElement.cs
- TagPrefixCollection.cs
- ToolStrip.cs
- SortKey.cs
- XmlSchemaDocumentation.cs
- OledbConnectionStringbuilder.cs
- ToolStripRenderEventArgs.cs
- DataBinding.cs
- ParentUndoUnit.cs
- HttpBindingExtension.cs
- HMACSHA1.cs
- NodeInfo.cs
- EncodingNLS.cs
- cookie.cs
- HttpApplication.cs
- BitmapEffectvisualstate.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TextWriterEngine.cs
- DataRowCollection.cs
- RealProxy.cs
- HierarchicalDataTemplate.cs
- Statements.cs
- XmlSchemaSimpleTypeUnion.cs
- RenamedEventArgs.cs
- DateTimeFormat.cs
- AutomationPropertyInfo.cs
- ColumnMapVisitor.cs
- GridItem.cs
- XmlNavigatorFilter.cs
- SqlColumnizer.cs
- ExtensionFile.cs
- PasswordRecoveryAutoFormat.cs