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
- PassportAuthentication.cs
- ServerIdentity.cs
- WebPartZone.cs
- SystemWebSectionGroup.cs
- FillErrorEventArgs.cs
- XmlTextReader.cs
- Window.cs
- MetadataFile.cs
- SystemWebSectionGroup.cs
- ObjectListCommandsPage.cs
- TerminatorSinks.cs
- SocketElement.cs
- RadioButtonStandardAdapter.cs
- CodeCompiler.cs
- TailCallAnalyzer.cs
- Int32AnimationUsingKeyFrames.cs
- RegexRunner.cs
- ViewStateException.cs
- OleDbConnectionFactory.cs
- OdbcConnectionStringbuilder.cs
- StackOverflowException.cs
- ObservableCollection.cs
- DataGridViewElement.cs
- VisualCollection.cs
- Thread.cs
- Translator.cs
- WindowsTitleBar.cs
- ViewPort3D.cs
- ConfigurationStrings.cs
- AmbiguousMatchException.cs
- HtmlTextArea.cs
- DocumentScope.cs
- KeyInterop.cs
- WebPartConnectVerb.cs
- DocumentXPathNavigator.cs
- InheritedPropertyChangedEventArgs.cs
- ScalarConstant.cs
- TextRange.cs
- TrustManager.cs
- ConfigurationElement.cs
- ResourceSet.cs
- Adorner.cs
- TitleStyle.cs
- dataSvcMapFileLoader.cs
- XamlReader.cs
- DocComment.cs
- SiteOfOriginContainer.cs
- WindowsAltTab.cs
- IERequestCache.cs
- UnauthorizedWebPart.cs
- StrongNameUtility.cs
- DataGridViewTextBoxCell.cs
- BindingNavigator.cs
- BitmapEffectDrawing.cs
- PersonalizationProviderHelper.cs
- TrackBarDesigner.cs
- HttpWebResponse.cs
- PartBasedPackageProperties.cs
- propertyentry.cs
- LabelExpression.cs
- AppDomainProtocolHandler.cs
- SetUserLanguageRequest.cs
- CultureMapper.cs
- CharUnicodeInfo.cs
- ContentDisposition.cs
- InstallerTypeAttribute.cs
- ThreadAbortException.cs
- RecognizedPhrase.cs
- ApplicationFileParser.cs
- DatatypeImplementation.cs
- _ShellExpression.cs
- TypeDelegator.cs
- DataGridViewTopLeftHeaderCell.cs
- codemethodreferenceexpression.cs
- WebException.cs
- CriticalFinalizerObject.cs
- FrugalMap.cs
- CharacterHit.cs
- SimpleBitVector32.cs
- DbUpdateCommandTree.cs
- StylusDevice.cs
- SafeIUnknown.cs
- DoubleCollectionValueSerializer.cs
- PerformanceCounterPermissionAttribute.cs
- MexTcpBindingCollectionElement.cs
- Console.cs
- OdbcConnectionString.cs
- Boolean.cs
- SafeNativeMethodsOther.cs
- XmlSiteMapProvider.cs
- ProviderSettings.cs
- SafeCertificateStore.cs
- CodeDirectoryCompiler.cs
- FreezableCollection.cs
- SqlCacheDependency.cs
- GenericQueueSurrogate.cs
- BitmapEffectGeneralTransform.cs
- DataBindingHandlerAttribute.cs
- StrokeDescriptor.cs
- ApplicationDirectoryMembershipCondition.cs