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
- BindingManagerDataErrorEventArgs.cs
- PersonalizationState.cs
- NativeMethodsOther.cs
- TakeQueryOptionExpression.cs
- BezierSegment.cs
- CommonDialog.cs
- ContextMenuStrip.cs
- ParameterBuilder.cs
- ComponentResourceManager.cs
- UnsafeNativeMethodsCLR.cs
- PrivilegedConfigurationManager.cs
- SpellerInterop.cs
- EventBuilder.cs
- MachineKeyConverter.cs
- DependencyPropertyChangedEventArgs.cs
- XmlSchemaObjectCollection.cs
- SystemTcpConnection.cs
- UnauthorizedWebPart.cs
- CopyOnWriteList.cs
- ToolStripDesignerAvailabilityAttribute.cs
- SystemTcpStatistics.cs
- IFlowDocumentViewer.cs
- Drawing.cs
- CrossSiteScriptingValidation.cs
- TabItem.cs
- Lease.cs
- BuildProvider.cs
- TextEffect.cs
- FontDriver.cs
- Predicate.cs
- FragmentQuery.cs
- HtmlListAdapter.cs
- ModelPropertyCollectionImpl.cs
- SettingsProviderCollection.cs
- TreeNodeBindingCollection.cs
- BordersPage.cs
- COAUTHINFO.cs
- CompleteWizardStep.cs
- SemanticResolver.cs
- OleDbErrorCollection.cs
- SqlConnectionFactory.cs
- DecoderFallbackWithFailureFlag.cs
- ItemsChangedEventArgs.cs
- SafeBitVector32.cs
- RunWorkerCompletedEventArgs.cs
- ContentPropertyAttribute.cs
- HttpRequest.cs
- XmlSchemaSubstitutionGroup.cs
- ComponentManagerBroker.cs
- Context.cs
- ResourceDefaultValueAttribute.cs
- XsltLibrary.cs
- basecomparevalidator.cs
- MediaPlayerState.cs
- TableNameAttribute.cs
- ItemCheckEvent.cs
- SaveFileDialog.cs
- DataService.cs
- TextBox.cs
- EntitySetBaseCollection.cs
- XmlQuerySequence.cs
- TripleDESCryptoServiceProvider.cs
- TrustSection.cs
- IxmlLineInfo.cs
- OleDbEnumerator.cs
- RootBrowserWindowProxy.cs
- IdentityManager.cs
- ObjectViewEntityCollectionData.cs
- RepeatBehaviorConverter.cs
- WorkflowMessageEventArgs.cs
- loginstatus.cs
- DataGridViewSelectedCellCollection.cs
- PersonalizableAttribute.cs
- UniqueConstraint.cs
- ProviderUtil.cs
- PathSegmentCollection.cs
- ArcSegment.cs
- ServicePoint.cs
- WebPageTraceListener.cs
- MostlySingletonList.cs
- CodeDOMProvider.cs
- ToolStripDropDown.cs
- Calendar.cs
- WebPartUtil.cs
- DataGridPageChangedEventArgs.cs
- FtpCachePolicyElement.cs
- ParamArrayAttribute.cs
- FixedSOMTableCell.cs
- XmlSerializerVersionAttribute.cs
- MessageTransmitTraceRecord.cs
- ProviderConnectionPointCollection.cs
- JournalEntryListConverter.cs
- FontUnitConverter.cs
- SafeNativeMethods.cs
- UnsupportedPolicyOptionsException.cs
- GlobalProxySelection.cs
- HostProtectionException.cs
- CodePageUtils.cs
- ComponentFactoryHelpers.cs
- ObjectListField.cs