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
- SqlWorkflowInstanceStore.cs
- WindowsAltTab.cs
- TreeChangeInfo.cs
- DataGridColumn.cs
- ResourceType.cs
- PolyLineSegment.cs
- ResourceCategoryAttribute.cs
- EntityDataSourceSelectingEventArgs.cs
- HttpRuntime.cs
- AdRotator.cs
- StringUtil.cs
- ImageListStreamer.cs
- CalendarDay.cs
- JsonDataContract.cs
- XhtmlBasicLabelAdapter.cs
- ElapsedEventArgs.cs
- HiddenField.cs
- EventMappingSettingsCollection.cs
- ForwardPositionQuery.cs
- SystemIPGlobalStatistics.cs
- BoolExpression.cs
- DesignTimeHTMLTextWriter.cs
- ChtmlLinkAdapter.cs
- ClassData.cs
- ToolStripLocationCancelEventArgs.cs
- DataGridViewHeaderCell.cs
- MatrixValueSerializer.cs
- WebPartMenuStyle.cs
- CalendarData.cs
- dataprotectionpermissionattribute.cs
- RectValueSerializer.cs
- MatrixValueSerializer.cs
- PrintControllerWithStatusDialog.cs
- TableItemStyle.cs
- StagingAreaInputItem.cs
- _ListenerAsyncResult.cs
- SecurityTokenResolver.cs
- PointHitTestParameters.cs
- SurrogateSelector.cs
- ConsoleKeyInfo.cs
- NativeMethods.cs
- WindowsFormsHost.cs
- CallbackCorrelationInitializer.cs
- WebReference.cs
- PropertyIDSet.cs
- Attachment.cs
- ProtocolsConfigurationHandler.cs
- RightsManagementInformation.cs
- TimerEventSubscriptionCollection.cs
- RequestQueue.cs
- TransactionScopeDesigner.cs
- RSAOAEPKeyExchangeFormatter.cs
- RelatedImageListAttribute.cs
- Validator.cs
- DocumentGrid.cs
- SingleTagSectionHandler.cs
- KnownAssembliesSet.cs
- WindowShowOrOpenTracker.cs
- IBuiltInEvidence.cs
- ObjectSecurity.cs
- DataTemplateKey.cs
- PropertyGridView.cs
- complextypematerializer.cs
- CommandLibraryHelper.cs
- RecordsAffectedEventArgs.cs
- NumberFormatInfo.cs
- QuaternionValueSerializer.cs
- DataGridColumnHeadersPresenter.cs
- DuplicateWaitObjectException.cs
- XmlAttributeProperties.cs
- MultiDataTrigger.cs
- SqlDependencyListener.cs
- XpsException.cs
- PropertyMapper.cs
- SkipStoryboardToFill.cs
- AspNetCompatibilityRequirementsMode.cs
- WorkflowServiceHostFactory.cs
- RawAppCommandInputReport.cs
- DebugView.cs
- MulticastDelegate.cs
- ScriptModule.cs
- UriTemplateDispatchFormatter.cs
- CoTaskMemHandle.cs
- ValueUnavailableException.cs
- ListControl.cs
- MissingManifestResourceException.cs
- PenContext.cs
- FlowLayout.cs
- SimpleBitVector32.cs
- XPathException.cs
- PathGradientBrush.cs
- DbDataSourceEnumerator.cs
- OdbcConnection.cs
- RotateTransform3D.cs
- DiagnosticTraceSource.cs
- webproxy.cs
- VBIdentifierNameEditor.cs
- WebEventCodes.cs
- DrawingVisualDrawingContext.cs
- PositiveTimeSpanValidatorAttribute.cs