Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / DataSourceIDConverter.cs / 1 / DataSourceIDConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.WebControls { using System; using System.CodeDom; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.ComponentModel.Design; using System.Data; using System.Design; using System.Diagnostics; using System.Runtime.InteropServices; using System.Globalization; using System.Collections.Generic; ///public class DataSourceIDConverter : TypeConverter { /// public DataSourceIDConverter() { } /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return false; } /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value == null) { return String.Empty; } else if (value.GetType() == typeof(string)) { return (string)value; } throw GetConvertFromException(value); } /// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { string[] idsArray = null; if (context != null) { WebFormsRootDesigner rootDesigner = null; IDesignerHost designerHost = (IDesignerHost)(context.GetService(typeof(IDesignerHost))); Debug.Assert(designerHost != null, "Did not get DesignerHost service."); if (designerHost != null) { IComponent rootComponent = designerHost.RootComponent; if (rootComponent != null) { rootDesigner = designerHost.GetDesigner(rootComponent) as WebFormsRootDesigner; } } if (rootDesigner != null && !rootDesigner.IsDesignerViewLocked) { // Walk up the list of naming containers to get all accessible data sources IComponent component = context.Instance as IComponent; if (component == null) { // In case we are hosted in a DesignerActionList we need // to find out the component that the action list belongs to DesignerActionList actionList = context.Instance as DesignerActionList; if (actionList != null) { component = actionList.Component; } } IList allComponents = ControlHelper.GetAllComponents(component, new ControlHelper.IsValidComponentDelegate(IsValidDataSource)); List uniqueControlIDs = new List (); foreach (IComponent c in allComponents) { Control control = c as Control; if (control != null && !String.IsNullOrEmpty(control.ID)) { if (!uniqueControlIDs.Contains(control.ID)) { uniqueControlIDs.Add(control.ID); } } } uniqueControlIDs.Sort(StringComparer.OrdinalIgnoreCase); uniqueControlIDs.Insert(0, SR.GetString(SR.DataSourceIDChromeConverter_NoDataSource)); uniqueControlIDs.Add(SR.GetString(SR.DataSourceIDChromeConverter_NewDataSource)); idsArray = uniqueControlIDs.ToArray(); } } return new StandardValuesCollection(idsArray); } /// public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return false; } /// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } /// protected virtual bool IsValidDataSource(IComponent component) { Control control = component as Control; if (control == null) { return false; } if (String.IsNullOrEmpty(control.ID)) { return false; } return (component is IDataSource); } } } // 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
- MenuItemAutomationPeer.cs
- Component.cs
- RoutedEventConverter.cs
- LinearGradientBrush.cs
- ValidationRule.cs
- DtdParser.cs
- SiteMapHierarchicalDataSourceView.cs
- XmlCharacterData.cs
- OdbcParameter.cs
- SessionPageStateSection.cs
- NTAccount.cs
- MembershipSection.cs
- TabletDeviceInfo.cs
- SmiContextFactory.cs
- ObjectItemAssemblyLoader.cs
- SqlLiftWhereClauses.cs
- DataTemplateKey.cs
- SymbolUsageManager.cs
- FontNamesConverter.cs
- CombinedGeometry.cs
- EventLogWatcher.cs
- _ProxyChain.cs
- DataKeyCollection.cs
- ZipFileInfo.cs
- Version.cs
- ConfigsHelper.cs
- Options.cs
- BaseDataListComponentEditor.cs
- ItemMap.cs
- SettingsPropertyNotFoundException.cs
- WorkflowMarkupSerializerMapping.cs
- XmlDataContract.cs
- AppSettingsExpressionEditor.cs
- JulianCalendar.cs
- __Error.cs
- RemotingConfiguration.cs
- RemoteWebConfigurationHostServer.cs
- InheritedPropertyChangedEventArgs.cs
- InstanceData.cs
- PassportAuthenticationEventArgs.cs
- ViewBox.cs
- NameValuePair.cs
- Token.cs
- ConfigurationManagerHelper.cs
- HGlobalSafeHandle.cs
- ErrorFormatterPage.cs
- IPAddressCollection.cs
- StylusButton.cs
- AdapterDictionary.cs
- OperationGenerator.cs
- SiteMapDataSourceView.cs
- VisualProxy.cs
- BamlLocalizabilityResolver.cs
- COAUTHINFO.cs
- UrlMappingCollection.cs
- DataGridViewSelectedCellCollection.cs
- LicenseException.cs
- ResourceWriter.cs
- Knowncolors.cs
- DefaultAsyncDataDispatcher.cs
- EpmSyndicationContentSerializer.cs
- Inline.cs
- CultureSpecificStringDictionary.cs
- BindingExpressionUncommonField.cs
- Validator.cs
- SpeechEvent.cs
- ParameterCollection.cs
- SourceFilter.cs
- IsolatedStorage.cs
- RunWorkerCompletedEventArgs.cs
- DBNull.cs
- XmlnsDefinitionAttribute.cs
- KeyEvent.cs
- DataDesignUtil.cs
- AuthorizationRuleCollection.cs
- TypeExtension.cs
- SuppressIldasmAttribute.cs
- UniqueContractNameValidationBehavior.cs
- RecordManager.cs
- IntegerValidator.cs
- PhonemeConverter.cs
- ProfileSettingsCollection.cs
- _RequestCacheProtocol.cs
- safemediahandle.cs
- BitArray.cs
- UserPersonalizationStateInfo.cs
- WSSecurityOneDotOneReceiveSecurityHeader.cs
- DictionarySectionHandler.cs
- CopyAttributesAction.cs
- _ProxyChain.cs
- SqlWebEventProvider.cs
- XmlEntityReference.cs
- util.cs
- X509Certificate2Collection.cs
- mil_commands.cs
- ObjectCloneHelper.cs
- WorkflowTraceTransfer.cs
- WebServiceFaultDesigner.cs
- TextAdaptor.cs
- ListViewItemMouseHoverEvent.cs