Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DesignBindingConverter.cs / 1 / DesignBindingConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System; using System.Design; using System.Collections; using System.ComponentModel; using System.Globalization; ////// /// internal class DesignBindingConverter : TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type sourceType) { return (typeof(string) == sourceType); } public override bool CanConvertFrom(ITypeDescriptorContext context, Type destType) { return (typeof(string) == destType); } public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type sourceType) { DesignBinding designBinding = (DesignBinding) value; if (designBinding.IsNull) { return SR.GetString(SR.DataGridNoneString); } else { string name = ""; if (designBinding.DataSource is IComponent) { IComponent component = (IComponent) designBinding.DataSource; if (component.Site != null) { name = component.Site.Name; } } if (name.Length == 0) { if (designBinding.DataSource is IListSource || designBinding.DataSource is IList || designBinding.DataSource is Array) { name = "(List)"; } else { string typeName = TypeDescriptor.GetClassName(designBinding.DataSource); int lastDot = typeName.LastIndexOf('.'); if (lastDot != -1) { typeName = typeName.Substring(lastDot + 1); } name = string.Format(CultureInfo.CurrentCulture, "({0})", typeName); } } name += " - " + designBinding.DataMember; return name; } } public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { string text = (string) value; if (text == null || text.Length == 0 || String.Compare(text,SR.GetString(SR.DataGridNoneString),true, CultureInfo.CurrentCulture) == 0) { return DesignBinding.Null; } else { int dash = text.IndexOf("-"); if (dash == -1) { throw new ArgumentException(SR.GetString(SR.DesignBindingBadParseString, text)); } string componentName = text.Substring(0,dash - 1).Trim(); string dataMember = text.Substring(dash + 1).Trim(); if (context == null || context.Container == null) { throw new ArgumentException(SR.GetString(SR.DesignBindingContextRequiredWhenParsing, text)); } IContainer container = DesignerUtils.CheckForNestedContainer(context.Container); // ...necessary to support SplitterPanel components IComponent dataSource = container.Components[componentName]; if (dataSource == null) { if (String.Equals(componentName, "(List)", StringComparison.OrdinalIgnoreCase)) { return null; } throw new ArgumentException(SR.GetString(SR.DesignBindingComponentNotFound, componentName)); } return new DesignBinding(dataSource,dataMember); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved./// Converts data bindings for use in the design-time environment. /// ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeExtensionConverter.cs
- ParseChildrenAsPropertiesAttribute.cs
- PowerModeChangedEventArgs.cs
- DesignerCategoryAttribute.cs
- ExecutionContext.cs
- ExpressionPrefixAttribute.cs
- Base64Stream.cs
- BStrWrapper.cs
- XmlAttributeCollection.cs
- InvalidDataContractException.cs
- Int32Animation.cs
- PeekCompletedEventArgs.cs
- XsdCachingReader.cs
- OpenTypeCommon.cs
- AppliedDeviceFiltersDialog.cs
- PersistenceProvider.cs
- DocumentCollection.cs
- DataColumn.cs
- URLMembershipCondition.cs
- ColorContext.cs
- HeaderedItemsControl.cs
- MemberRelationshipService.cs
- ServiceHttpHandlerFactory.cs
- TableLayoutSettings.cs
- HtmlInputCheckBox.cs
- UserControlBuildProvider.cs
- MethodRental.cs
- SamlAdvice.cs
- ChannelListenerBase.cs
- SchemaElementDecl.cs
- EnumBuilder.cs
- BitmapEffectInput.cs
- AffineTransform3D.cs
- CodeIterationStatement.cs
- PointF.cs
- D3DImage.cs
- NumericUpDownAcceleration.cs
- RichTextBox.cs
- InkPresenter.cs
- WebPartCloseVerb.cs
- DrawingContextWalker.cs
- BitmapEffectDrawing.cs
- MetabaseServerConfig.cs
- SkipQueryOptionExpression.cs
- TextParagraphProperties.cs
- FileLogRecord.cs
- httpserverutility.cs
- xsdvalidator.cs
- OdbcParameter.cs
- ProcessHost.cs
- Monitor.cs
- EditorBrowsableAttribute.cs
- PointConverter.cs
- XmlSerializationWriter.cs
- XPathDocumentNavigator.cs
- XmlEntity.cs
- XamlStyleSerializer.cs
- DataGridViewRowCollection.cs
- DecimalStorage.cs
- SecuritySessionFilter.cs
- ServiceDescriptionSerializer.cs
- CodeObjectCreateExpression.cs
- ColumnCollection.cs
- WebPartCatalogAddVerb.cs
- WmlPanelAdapter.cs
- ImageCodecInfo.cs
- EdmFunction.cs
- TabletDeviceInfo.cs
- CodeMethodReturnStatement.cs
- CompatibleComparer.cs
- ResizingMessageFilter.cs
- CriticalExceptions.cs
- LinearGradientBrush.cs
- TypeInitializationException.cs
- HttpProtocolReflector.cs
- SqlReferenceCollection.cs
- SplitterPanel.cs
- ServicePointManagerElement.cs
- ClientSettingsProvider.cs
- followingsibling.cs
- SiteMapHierarchicalDataSourceView.cs
- TraceContextRecord.cs
- OneOfTypeConst.cs
- ResourceReferenceKeyNotFoundException.cs
- RelationshipConstraintValidator.cs
- TextFormatterContext.cs
- Misc.cs
- HGlobalSafeHandle.cs
- TypeConverterHelper.cs
- ComNativeDescriptor.cs
- _SSPIWrapper.cs
- LogicalTreeHelper.cs
- TraceListeners.cs
- SparseMemoryStream.cs
- CodeAttributeArgumentCollection.cs
- MappedMetaModel.cs
- WebColorConverter.cs
- CaseCqlBlock.cs
- Rotation3DAnimation.cs
- RegexNode.cs