Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / DataGridViewComboBoxColumnDesigner.cs / 1 / DataGridViewComboBoxColumnDesigner.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System.Design; using System.ComponentModel; using System.Diagnostics; using System; using System.Collections; using System.Windows.Forms; using System.Data; using System.ComponentModel.Design; using System.Drawing; using Microsoft.Win32; using System.Windows.Forms.ComponentModel; ////// /// internal class DataGridViewComboBoxColumnDesigner : DataGridViewColumnDesigner { static BindingContext bc; private string ValueMember { get { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; return col.ValueMember; } set { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; if (col.DataSource == null) { return; } if (ValidDataMember(col.DataSource, value)) { col.ValueMember = value; } } } private string DisplayMember { get { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; return col.DisplayMember; } set { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; if (col.DataSource == null) { return; } if (ValidDataMember(col.DataSource, value)) { col.DisplayMember = value; } } } private bool ShouldSerializeDisplayMember() { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; return !String.IsNullOrEmpty(col.DisplayMember); } private bool ShouldSerializeValueMember() { DataGridViewComboBoxColumn col = (DataGridViewComboBoxColumn) this.Component; return !String.IsNullOrEmpty(col.ValueMember); } private static bool ValidDataMember(object dataSource, string dataMember) { if (String.IsNullOrEmpty(dataMember)) { // a null string is a valid value return true; } if (bc == null) { bc = new BindingContext(); } // // scrub the hashTable inside the BindingContext every time we access this method. // int count = ((ICollection) bc).Count; BindingMemberInfo bmi = new BindingMemberInfo(dataMember); PropertyDescriptorCollection props = null; BindingManagerBase bmb; try { bmb = bc[dataSource, bmi.BindingPath]; } catch (System.ArgumentException) { return false; } if (bmb == null) { return false; } props = bmb.GetItemProperties(); if (props == null) { return false; } if (props[bmi.BindingField] == null) { return false; } return true; } protected override void PreFilterProperties(IDictionary properties) { base.PreFilterProperties(properties); PropertyDescriptor prop = (PropertyDescriptor) properties["ValueMember"]; if (prop != null) { properties["ValueMember"] = TypeDescriptor.CreateProperty(typeof(DataGridViewComboBoxColumnDesigner), prop, new Attribute[0]); } prop = (PropertyDescriptor) properties["DisplayMember"]; if (prop != null) { properties["DisplayMember"] = TypeDescriptor.CreateProperty(typeof(DataGridViewComboBoxColumnDesigner), prop, new Attribute[0]); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.Provides a base designer for data grid view columns. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DiscoveryReferences.cs
- SQLChars.cs
- MergePropertyDescriptor.cs
- DNS.cs
- Help.cs
- UnaryQueryOperator.cs
- HelloOperationAsyncResult.cs
- DocumentPageHost.cs
- Keyboard.cs
- NullableConverter.cs
- XmlWriterSettings.cs
- RegistryPermission.cs
- VersionConverter.cs
- PlainXmlWriter.cs
- FixedLineResult.cs
- MethodImplAttribute.cs
- XPathSelfQuery.cs
- UserValidatedEventArgs.cs
- RectKeyFrameCollection.cs
- DashStyles.cs
- ConfigXmlAttribute.cs
- SHA1CryptoServiceProvider.cs
- RichListBox.cs
- Util.cs
- CodeTypeParameterCollection.cs
- TabControlCancelEvent.cs
- Config.cs
- Types.cs
- HashHelper.cs
- MarkerProperties.cs
- RetriableClipboard.cs
- NumberSubstitution.cs
- PkcsMisc.cs
- _ProxyChain.cs
- Journal.cs
- OdbcInfoMessageEvent.cs
- Size3DValueSerializer.cs
- AuthenticationConfig.cs
- MatrixStack.cs
- FormsAuthenticationEventArgs.cs
- COM2ComponentEditor.cs
- ApplicationManager.cs
- MessagePropertyVariants.cs
- DesignDataSource.cs
- CodeCompiler.cs
- StylusButtonEventArgs.cs
- ValidationSummary.cs
- SmtpNetworkElement.cs
- ResXResourceReader.cs
- XmlDocumentType.cs
- AspNetHostingPermission.cs
- PasswordTextNavigator.cs
- VectorAnimationBase.cs
- Configuration.cs
- ToolStripButton.cs
- Color.cs
- NamespaceEmitter.cs
- StatusBar.cs
- Border.cs
- DataGridRow.cs
- CustomBindingCollectionElement.cs
- WorkBatch.cs
- DelayLoadType.cs
- NativeMethodsOther.cs
- Event.cs
- DataGridHyperlinkColumn.cs
- RuleSettings.cs
- DataGridViewBand.cs
- TextViewBase.cs
- RowTypePropertyElement.cs
- VariableElement.cs
- Interfaces.cs
- PanningMessageFilter.cs
- CompositeCollectionView.cs
- NeutralResourcesLanguageAttribute.cs
- ListSourceHelper.cs
- EncryptedPackage.cs
- MailBnfHelper.cs
- CanExecuteRoutedEventArgs.cs
- NonPrimarySelectionGlyph.cs
- DeviceSpecificDialogCachedState.cs
- SectionRecord.cs
- GetMemberBinder.cs
- QueryContinueDragEvent.cs
- ReferenceSchema.cs
- RequestStatusBarUpdateEventArgs.cs
- COAUTHIDENTITY.cs
- XPathChildIterator.cs
- HttpPostProtocolReflector.cs
- HttpStaticObjectsCollectionBase.cs
- CodeChecksumPragma.cs
- EntityProviderFactory.cs
- WebPart.cs
- XmlSchemaValidationException.cs
- PropertyNames.cs
- QilReplaceVisitor.cs
- TabControl.cs
- OutOfProcStateClientManager.cs
- ServiceHostingEnvironment.cs
- MappingModelBuildProvider.cs