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
- NumericUpDownAccelerationCollection.cs
- webeventbuffer.cs
- XmlQueryRuntime.cs
- XmlArrayAttribute.cs
- PasswordRecoveryAutoFormat.cs
- UserControlBuildProvider.cs
- HttpAsyncResult.cs
- TextRangeEditTables.cs
- SinglePageViewer.cs
- FlowDocumentReaderAutomationPeer.cs
- FileStream.cs
- ProjectionPruner.cs
- XPathPatternParser.cs
- TypedElement.cs
- BufferedGraphicsManager.cs
- WebPartConnection.cs
- SoapExtensionStream.cs
- DelimitedListTraceListener.cs
- BulletedList.cs
- CornerRadius.cs
- UnsignedPublishLicense.cs
- Polygon.cs
- X500Name.cs
- AliasGenerator.cs
- DuplicateDetector.cs
- TextRangeProviderWrapper.cs
- XmlText.cs
- ContextMenu.cs
- AliasedExpr.cs
- MobileUserControlDesigner.cs
- TypeResolvingOptions.cs
- FtpCachePolicyElement.cs
- LayoutTable.cs
- URLString.cs
- IndexedString.cs
- CodeExpressionStatement.cs
- TypeConverterAttribute.cs
- DataGridTablesFactory.cs
- XhtmlBasicControlAdapter.cs
- Decoder.cs
- SessionEndedEventArgs.cs
- DetailsViewUpdateEventArgs.cs
- AttributeTable.cs
- DynamicValidator.cs
- UrlEncodedParameterWriter.cs
- UnsafeNativeMethods.cs
- Internal.cs
- DataSourceXmlClassAttribute.cs
- GPRECT.cs
- ScrollProviderWrapper.cs
- StateWorkerRequest.cs
- SoapTypeAttribute.cs
- XmlDataSourceNodeDescriptor.cs
- DocumentApplicationJournalEntry.cs
- ObservableDictionary.cs
- ExceptionHandlerDesigner.cs
- Command.cs
- StateFinalizationDesigner.cs
- Logging.cs
- DataControlPagerLinkButton.cs
- cookieexception.cs
- Stroke2.cs
- TemplateBuilder.cs
- ChannelServices.cs
- DesignTimeTemplateParser.cs
- EdmProviderManifest.cs
- CmsInterop.cs
- TemplatedAdorner.cs
- OracleDataAdapter.cs
- EmptyCollection.cs
- SRDisplayNameAttribute.cs
- Menu.cs
- ErrorFormatterPage.cs
- KeyValuePair.cs
- AssemblyEvidenceFactory.cs
- UDPClient.cs
- PlanCompiler.cs
- FontCollection.cs
- AuthenticationModuleElement.cs
- COM2FontConverter.cs
- QueryStringConverter.cs
- Int64Converter.cs
- BinaryMessageFormatter.cs
- ControlPropertyNameConverter.cs
- EdmProperty.cs
- DomainUpDown.cs
- TableItemStyle.cs
- EdmToObjectNamespaceMap.cs
- ControlPersister.cs
- XmlDocumentSerializer.cs
- Speller.cs
- ParallelTimeline.cs
- LinkedResourceCollection.cs
- Helper.cs
- XhtmlBasicSelectionListAdapter.cs
- DelayDesigner.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- MatchingStyle.cs
- unitconverter.cs
- ServiceOperationHelpers.cs