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
- TextEditorParagraphs.cs
- ConfigurationCollectionAttribute.cs
- ChannelServices.cs
- RangeValidator.cs
- SafeSecurityHandles.cs
- HttpHandlerActionCollection.cs
- IDataContractSurrogate.cs
- CompilerParameters.cs
- TimeoutValidationAttribute.cs
- Types.cs
- FastEncoderWindow.cs
- DispatcherOperation.cs
- Invariant.cs
- XmlSchemaAny.cs
- ScanQueryOperator.cs
- WebPermission.cs
- MessageTraceRecord.cs
- OperationContractGenerationContext.cs
- DescendantQuery.cs
- RenderData.cs
- ClientBuildManagerCallback.cs
- InkCanvasSelectionAdorner.cs
- FlagsAttribute.cs
- SelfSignedCertificate.cs
- MetafileHeaderWmf.cs
- Group.cs
- ConstNode.cs
- SevenBitStream.cs
- ReachFixedDocumentSerializer.cs
- StyleCollectionEditor.cs
- TrustLevel.cs
- CancelEventArgs.cs
- Lock.cs
- PenCursorManager.cs
- TranslateTransform.cs
- Rect3DValueSerializer.cs
- BackgroundFormatInfo.cs
- StoragePropertyMapping.cs
- RadialGradientBrush.cs
- TableDetailsCollection.cs
- UpdatePanelControlTrigger.cs
- ProxyAttribute.cs
- DelimitedListTraceListener.cs
- DocumentPage.cs
- SimpleColumnProvider.cs
- DefaultMemberAttribute.cs
- Header.cs
- StringUtil.cs
- CodeSnippetStatement.cs
- PnrpPermission.cs
- SingleObjectCollection.cs
- IDictionary.cs
- CodeSnippetExpression.cs
- PreservationFileWriter.cs
- XmlAttributeAttribute.cs
- GridLength.cs
- CallbackDebugElement.cs
- Span.cs
- EncodingDataItem.cs
- NetSectionGroup.cs
- XmlValidatingReader.cs
- SystemBrushes.cs
- CodeCommentStatementCollection.cs
- WebServiceHost.cs
- HtmlInputText.cs
- mediapermission.cs
- DateTimeFormat.cs
- LOSFormatter.cs
- XmlNamespaceDeclarationsAttribute.cs
- HwndSourceParameters.cs
- ObjectStateEntry.cs
- EntityDataSourceView.cs
- Rect3D.cs
- ReachSerializableProperties.cs
- pingexception.cs
- PolyLineSegment.cs
- OdbcConnection.cs
- TableRow.cs
- PermissionSetTriple.cs
- FileLogRecordStream.cs
- FieldCollectionEditor.cs
- UpdateException.cs
- ButtonPopupAdapter.cs
- XPathCompileException.cs
- CodeParameterDeclarationExpressionCollection.cs
- ConsoleKeyInfo.cs
- ReachPageContentSerializer.cs
- SchemaImporterExtensionElementCollection.cs
- MetadataPropertyCollection.cs
- ProgressiveCrcCalculatingStream.cs
- ZipIOCentralDirectoryFileHeader.cs
- RootBuilder.cs
- DetailsViewInsertedEventArgs.cs
- PreviewPageInfo.cs
- wpf-etw.cs
- XmlEncoding.cs
- RewritingProcessor.cs
- DesignerTransaction.cs
- VisualBrush.cs
- MultiSelector.cs