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
- WebPartCancelEventArgs.cs
- GridPattern.cs
- DataGridPreparingCellForEditEventArgs.cs
- MutexSecurity.cs
- LocationReference.cs
- ApplicationActivator.cs
- WebPartDisplayModeEventArgs.cs
- CmsUtils.cs
- ComboBoxRenderer.cs
- TreeNode.cs
- WindowInteropHelper.cs
- TreeViewCancelEvent.cs
- AssemblyInfo.cs
- PropertyValueChangedEvent.cs
- DataSvcMapFileSerializer.cs
- FromReply.cs
- SqlHelper.cs
- DefaultPropertyAttribute.cs
- TraceSwitch.cs
- ErrorHandler.cs
- DisplayMemberTemplateSelector.cs
- PaintEvent.cs
- AsyncMethodInvoker.cs
- Util.cs
- BufferedGraphicsContext.cs
- PeerCollaborationPermission.cs
- WebPartDisplayModeCollection.cs
- Helper.cs
- PrintPageEvent.cs
- SerialStream.cs
- ResourceSet.cs
- MbpInfo.cs
- NullableLongAverageAggregationOperator.cs
- PolicyConversionContext.cs
- MetafileHeaderWmf.cs
- WebControl.cs
- WaitForChangedResult.cs
- GestureRecognitionResult.cs
- SpanIndex.cs
- BamlResourceSerializer.cs
- FontSource.cs
- GB18030Encoding.cs
- BulletedListEventArgs.cs
- InsufficientExecutionStackException.cs
- Substitution.cs
- FileStream.cs
- MulticastNotSupportedException.cs
- HashAlgorithm.cs
- WindowInteropHelper.cs
- PageHandlerFactory.cs
- PagerSettings.cs
- ComEventsSink.cs
- DataList.cs
- FileIOPermission.cs
- KeyFrames.cs
- HttpApplicationFactory.cs
- GeometryGroup.cs
- DataGridCellEditEndingEventArgs.cs
- LoginCancelEventArgs.cs
- assemblycache.cs
- Enum.cs
- RequestQueue.cs
- UrlMapping.cs
- PropertiesTab.cs
- DynamicPropertyReader.cs
- SerializationObjectManager.cs
- SR.cs
- AuthenticationManager.cs
- DocumentGridPage.cs
- PeerName.cs
- MenuBindingsEditorForm.cs
- HttpWriter.cs
- documentsequencetextpointer.cs
- SymmetricAlgorithm.cs
- LinqToSqlWrapper.cs
- EdmFunctions.cs
- XmlSerializationWriter.cs
- SqlDataSourceDesigner.cs
- ToolBarPanel.cs
- ProjectionPathSegment.cs
- ScrollPattern.cs
- Dictionary.cs
- XmlSchemaAnnotated.cs
- BoundPropertyEntry.cs
- EventToken.cs
- HtmlForm.cs
- RawStylusActions.cs
- ArrayList.cs
- HMACSHA1.cs
- PeerNode.cs
- TextBounds.cs
- _Semaphore.cs
- RuleProcessor.cs
- HttpListenerException.cs
- EventLogPermissionEntry.cs
- UInt64.cs
- SqlGenericUtil.cs
- TextRangeSerialization.cs
- FilterUserControlBase.cs
- XmlQueryStaticData.cs