Code:
/ FX-1434 / FX-1434 / 1.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
- AssemblySettingAttributes.cs
- MachineKeySection.cs
- BindToObject.cs
- DataTableMappingCollection.cs
- CollectionChangedEventManager.cs
- Registry.cs
- HorizontalAlignConverter.cs
- FastEncoderWindow.cs
- HitTestParameters3D.cs
- XmlSchemaSimpleType.cs
- ValidatorCollection.cs
- DataListItem.cs
- Calendar.cs
- PropertyBuilder.cs
- Literal.cs
- RawKeyboardInputReport.cs
- HttpCapabilitiesSectionHandler.cs
- MetafileHeaderWmf.cs
- ToolStripManager.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- MessageBox.cs
- OneOf.cs
- TypeInitializationException.cs
- WorkflowRuntimeServiceElement.cs
- Int32Converter.cs
- XmlSignificantWhitespace.cs
- EncoderParameter.cs
- RbTree.cs
- PublisherMembershipCondition.cs
- KnownTypesProvider.cs
- ProfileSettingsCollection.cs
- TypeSource.cs
- GradientBrush.cs
- SizeAnimationUsingKeyFrames.cs
- CompositeDataBoundControl.cs
- SystemInfo.cs
- HwndMouseInputProvider.cs
- LogConverter.cs
- HtmlTextArea.cs
- ClientRoleProvider.cs
- DrawingState.cs
- MexNamedPipeBindingCollectionElement.cs
- BypassElementCollection.cs
- DesignOnlyAttribute.cs
- TreeNodeStyle.cs
- login.cs
- SoapEnumAttribute.cs
- FileFormatException.cs
- SqlSelectClauseBuilder.cs
- CheckBox.cs
- SerializationAttributes.cs
- DependencyPropertyDescriptor.cs
- XamlFigureLengthSerializer.cs
- MSHTMLHostUtil.cs
- HandlerMappingMemo.cs
- ViewCellRelation.cs
- HasCopySemanticsAttribute.cs
- FrameworkElementFactoryMarkupObject.cs
- ListBox.cs
- ContextQuery.cs
- ExpressionBuilder.cs
- FunctionImportMapping.cs
- FontStyle.cs
- ExceptionWrapper.cs
- XmlSchemaValidationException.cs
- datacache.cs
- SqlRetyper.cs
- ZipIORawDataFileBlock.cs
- DescendantQuery.cs
- DecimalAnimation.cs
- DataGridViewDataErrorEventArgs.cs
- PassportPrincipal.cs
- IdleTimeoutMonitor.cs
- _OverlappedAsyncResult.cs
- XmlAggregates.cs
- ListComponentEditor.cs
- SynchronizedInputProviderWrapper.cs
- RuntimeHandles.cs
- Point3D.cs
- Int16Converter.cs
- WebPartHelpVerb.cs
- XPathDocumentIterator.cs
- PreservationFileReader.cs
- securitycriticaldata.cs
- SafeViewOfFileHandle.cs
- ComplexLine.cs
- Operator.cs
- BaseCodePageEncoding.cs
- ProgressChangedEventArgs.cs
- BitmapPalette.cs
- CodeDirectoryCompiler.cs
- KeyConstraint.cs
- SQLBoolean.cs
- Emitter.cs
- ResolvedKeyFrameEntry.cs
- WmlLiteralTextAdapter.cs
- ListItemParagraph.cs
- Publisher.cs
- EnumType.cs
- MobileCategoryAttribute.cs