/// <include file='doc\DataMemberConverter.uex' path='docs/doc[@for="DataMemberConverter.GetStandardValues"]/*' /> /// <devdoc> /// <para> /// Gets the fields present within the selected data source if information about them is available. /// </para> /// </devdoc> public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { string[] names = null; if (context != null) { IComponent component = context.Instance as IComponent; if (component is IDeviceSpecificChoiceDesigner) { component = ((IDeviceSpecificChoiceDesigner)component).UnderlyingControl; } if (component != null) { ISite componentSite = component.Site; if (componentSite != null) { IDesignerHost designerHost = (IDesignerHost)componentSite.GetService(typeof(IDesignerHost)); if (designerHost != null) { IDesigner designer = designerHost.GetDesigner(component); if (designer is IDataSourceProvider) { object dataSource = ((IDataSourceProvider)designer).GetSelectedDataSource(); if (dataSource != null) { names = DesignTimeData.GetDataMembers(dataSource); } } } } } if (names == null) { names = new string[0]; } Array.Sort(names); } return(new StandardValuesCollection(names)); }