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
- UIElementPropertyUndoUnit.cs
- NavigationHelper.cs
- XmlSchemaSet.cs
- ScalarConstant.cs
- BamlLocalizer.cs
- ExpressionCopier.cs
- GridViewDeletedEventArgs.cs
- NativeCompoundFileAPIs.cs
- RelationshipSet.cs
- HtmlInputRadioButton.cs
- TextEditorDragDrop.cs
- RelatedPropertyManager.cs
- basemetadatamappingvisitor.cs
- NamedObject.cs
- SafeArchiveContext.cs
- DesignerCommandAdapter.cs
- TypeSystem.cs
- PanelDesigner.cs
- InvalidOleVariantTypeException.cs
- MappedMetaModel.cs
- TypeInitializationException.cs
- SQLInt32.cs
- SamlAuthenticationStatement.cs
- TaskHelper.cs
- WebHttpBinding.cs
- TextSelectionProcessor.cs
- ErrorRuntimeConfig.cs
- UndirectedGraph.cs
- AvTraceDetails.cs
- LocationSectionRecord.cs
- MsmqHostedTransportManager.cs
- TransactionValidationBehavior.cs
- VirtualPathProvider.cs
- X509WindowsSecurityToken.cs
- PinnedBufferMemoryStream.cs
- BufferedGraphics.cs
- RuntimeConfigurationRecord.cs
- CurrentChangingEventManager.cs
- SecurityCriticalDataForSet.cs
- BufferAllocator.cs
- HostingEnvironmentException.cs
- TrustManagerMoreInformation.cs
- WindowsFormsSynchronizationContext.cs
- XmlBoundElement.cs
- XmlQueryOutput.cs
- SubpageParaClient.cs
- RootProfilePropertySettingsCollection.cs
- ToolBar.cs
- FormViewAutoFormat.cs
- ReflectionUtil.cs
- DistinctQueryOperator.cs
- AuthenticatingEventArgs.cs
- Substitution.cs
- EntityConnectionStringBuilderItem.cs
- FormViewPageEventArgs.cs
- ReferenceService.cs
- ComplexTypeEmitter.cs
- Token.cs
- COM2Enum.cs
- XmlCharCheckingReader.cs
- PeerCustomResolverBindingElement.cs
- CustomAttributeSerializer.cs
- TextModifier.cs
- EdgeProfileValidation.cs
- QueryInterceptorAttribute.cs
- TextMarkerSource.cs
- RenderContext.cs
- WizardPanelChangingEventArgs.cs
- TextRangeEditTables.cs
- WebPartHeaderCloseVerb.cs
- CodeTypeMemberCollection.cs
- MailSettingsSection.cs
- XhtmlBasicSelectionListAdapter.cs
- TriggerAction.cs
- DescendantOverDescendantQuery.cs
- _LocalDataStore.cs
- storagemappingitemcollection.viewdictionary.cs
- CompilerTypeWithParams.cs
- Models.cs
- MultitargetUtil.cs
- WebColorConverter.cs
- MarkerProperties.cs
- XmlNamespaceMapping.cs
- Int32RectConverter.cs
- RtType.cs
- Parameter.cs
- VirtualizingPanel.cs
- TreeViewHitTestInfo.cs
- CompensatableSequenceActivity.cs
- SingleObjectCollection.cs
- TextBlockAutomationPeer.cs
- FixedTextPointer.cs
- SamlAction.cs
- TextEffectResolver.cs
- FastEncoder.cs
- FixUpCollection.cs
- OutputCacheSettingsSection.cs
- CollectionBase.cs
- RootDesignerSerializerAttribute.cs
- JavaScriptObjectDeserializer.cs