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
- IpcClientChannel.cs
- CompositeFontFamily.cs
- _BufferOffsetSize.cs
- DataSourceNameHandler.cs
- DNS.cs
- EntityViewGenerationConstants.cs
- ProfilePropertyMetadata.cs
- TdsRecordBufferSetter.cs
- EdmItemError.cs
- Parameter.cs
- StorageModelBuildProvider.cs
- TagPrefixInfo.cs
- SessionStateContainer.cs
- IisTraceWebEventProvider.cs
- ACL.cs
- OracleConnection.cs
- AuthenticationManager.cs
- FramingFormat.cs
- storepermission.cs
- ImmComposition.cs
- updateconfighost.cs
- Parsers.cs
- LayoutManager.cs
- DesignerActionItemCollection.cs
- SqlConnectionString.cs
- Baml2006ReaderContext.cs
- CacheSection.cs
- EnumerableCollectionView.cs
- EventMap.cs
- MonthChangedEventArgs.cs
- MailFileEditor.cs
- FrameworkContentElement.cs
- HtmlContainerControl.cs
- Stylus.cs
- SslStreamSecurityUpgradeProvider.cs
- ReaderWriterLock.cs
- WindowsListBox.cs
- OracleTimeSpan.cs
- TextEvent.cs
- XmlSchemaSimpleTypeRestriction.cs
- StaticDataManager.cs
- Int32CAMarshaler.cs
- GACIdentityPermission.cs
- Object.cs
- wgx_exports.cs
- StrongName.cs
- SettingsProviderCollection.cs
- ReadOnlyNameValueCollection.cs
- InvalidPrinterException.cs
- TextEditor.cs
- MergeEnumerator.cs
- PassportIdentity.cs
- UpdateExpressionVisitor.cs
- GroupBox.cs
- KeyToListMap.cs
- PeerNameRecord.cs
- RegexNode.cs
- InlineCollection.cs
- RIPEMD160Managed.cs
- ListViewSortEventArgs.cs
- CodeValidator.cs
- HMACSHA1.cs
- HtmlElementCollection.cs
- TreeNodeBindingCollection.cs
- ByValueEqualityComparer.cs
- XmlSerializationReader.cs
- PropertyChangedEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ProfileManager.cs
- SiteMapDataSourceView.cs
- StylusPointPropertyId.cs
- SectionInformation.cs
- RegistrySecurity.cs
- latinshape.cs
- DurableInstanceProvider.cs
- VisualBrush.cs
- EventMappingSettings.cs
- _NestedMultipleAsyncResult.cs
- TextContainerChangedEventArgs.cs
- CustomErrorCollection.cs
- FontConverter.cs
- KeyManager.cs
- DurationConverter.cs
- FileVersionInfo.cs
- SimpleMailWebEventProvider.cs
- ListBox.cs
- ProcessHostServerConfig.cs
- TransportElement.cs
- SystemSounds.cs
- NavigateEvent.cs
- DbParameterCollection.cs
- UiaCoreTypesApi.cs
- TcpTransportSecurityElement.cs
- GroupBoxRenderer.cs
- ItemsControlAutomationPeer.cs
- XmlPreloadedResolver.cs
- WebBrowserPermission.cs
- PolicyException.cs
- Stopwatch.cs
- WebServiceErrorEvent.cs