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
- ItemCollectionEditor.cs
- DataSourceSelectArguments.cs
- ComplexPropertyEntry.cs
- ClientTarget.cs
- OwnerDrawPropertyBag.cs
- WindowsProgressbar.cs
- ControlUtil.cs
- X509CertificateValidator.cs
- CancelRequestedQuery.cs
- NativeCppClassAttribute.cs
- GPPOINT.cs
- XmlNodeComparer.cs
- HostedTransportConfigurationManager.cs
- LocatorBase.cs
- TraversalRequest.cs
- XmlAnyAttributeAttribute.cs
- Dynamic.cs
- NotImplementedException.cs
- ContentFilePart.cs
- GroupBoxAutomationPeer.cs
- LineBreak.cs
- ArraySegment.cs
- AppearanceEditorPart.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- SectionVisual.cs
- DelimitedListTraceListener.cs
- StorageTypeMapping.cs
- Delegate.cs
- RectangleHotSpot.cs
- WinFormsUtils.cs
- DateBoldEvent.cs
- UnitySerializationHolder.cs
- SafeNativeMethodsMilCoreApi.cs
- XmlSchemaChoice.cs
- RestrictedTransactionalPackage.cs
- IPeerNeighbor.cs
- EdmFunction.cs
- ModuleBuilder.cs
- ValidationManager.cs
- SmtpNetworkElement.cs
- StrokeNodeOperations2.cs
- ProfilePropertySettings.cs
- TableLayoutSettingsTypeConverter.cs
- TokenBasedSetEnumerator.cs
- PreloadedPackages.cs
- UnsafeNativeMethods.cs
- AutomationProperty.cs
- ControlUtil.cs
- ControlBuilder.cs
- GestureRecognitionResult.cs
- ContextProperty.cs
- SessionParameter.cs
- UpdateManifestForBrowserApplication.cs
- SiteOfOriginPart.cs
- OdbcParameter.cs
- DrawingBrush.cs
- DataControlField.cs
- _HeaderInfoTable.cs
- Point3DCollection.cs
- PointCollectionConverter.cs
- JavaScriptSerializer.cs
- ClientApiGenerator.cs
- WindowsStatusBar.cs
- AssertSection.cs
- DataBoundControlDesigner.cs
- TemplateXamlTreeBuilder.cs
- UserUseLicenseDictionaryLoader.cs
- ContainerSelectorActiveEvent.cs
- BeginEvent.cs
- ObjectStateEntry.cs
- ConfigXmlWhitespace.cs
- Popup.cs
- ConstNode.cs
- PipelineComponent.cs
- SerialStream.cs
- EnumConverter.cs
- WebBrowserNavigatedEventHandler.cs
- Stackframe.cs
- StyleXamlParser.cs
- ExpressionBindings.cs
- MemberHolder.cs
- ReadOnlyCollection.cs
- QuaternionAnimation.cs
- TextParagraph.cs
- DataComponentGenerator.cs
- BasicCellRelation.cs
- HtmlLabelAdapter.cs
- HttpsTransportBindingElement.cs
- QueryPageSettingsEventArgs.cs
- EventMappingSettingsCollection.cs
- EventSetter.cs
- ListParagraph.cs
- RegionInfo.cs
- SerializationObjectManager.cs
- DataGridViewCellCollection.cs
- IndexingContentUnit.cs
- ImageCodecInfo.cs
- HelpInfo.cs
- LineServicesRun.cs
- ManagedFilter.cs