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;
///
///
/// Provides a base designer for data grid view columns.
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AncillaryOps.cs
- CustomWebEventKey.cs
- VisualStates.cs
- NamedPipeHostedTransportConfiguration.cs
- ProcessThreadCollection.cs
- CornerRadius.cs
- ProgressPage.cs
- ControlCollection.cs
- DelegatingHeader.cs
- HttpServerChannel.cs
- UInt16Converter.cs
- SurrogateSelector.cs
- FormattedTextSymbols.cs
- RegexCaptureCollection.cs
- TimeoutValidationAttribute.cs
- QilXmlReader.cs
- WebPartDisplayModeCancelEventArgs.cs
- CacheAxisQuery.cs
- BindUriHelper.cs
- PeerNameRecord.cs
- WindowsRegion.cs
- DependencyPropertyAttribute.cs
- ApplicationHost.cs
- PropertyChangedEventManager.cs
- MaskedTextProvider.cs
- BuildManagerHost.cs
- SHA1Managed.cs
- SerialPort.cs
- OdbcRowUpdatingEvent.cs
- PackagePartCollection.cs
- SemanticResultKey.cs
- LicFileLicenseProvider.cs
- MediaSystem.cs
- Hash.cs
- CodeComment.cs
- MonitorWrapper.cs
- SQLChars.cs
- SslStream.cs
- GeometryDrawing.cs
- Hashtable.cs
- ColumnBinding.cs
- ScrollBar.cs
- SubpageParaClient.cs
- XXXInfos.cs
- AccessViolationException.cs
- EndpointBehaviorElement.cs
- DateTimeParse.cs
- StringAnimationUsingKeyFrames.cs
- CertificateManager.cs
- GridProviderWrapper.cs
- PropertyMetadata.cs
- DbConnectionStringCommon.cs
- WebControlsSection.cs
- TextEditorTyping.cs
- EditorBrowsableAttribute.cs
- HtmlForm.cs
- PropertyGridEditorPart.cs
- XPathDocumentBuilder.cs
- XPathExpr.cs
- DesignerTextBoxAdapter.cs
- CachedPathData.cs
- ScriptBehaviorDescriptor.cs
- WebPartManagerInternals.cs
- DynamicDataRouteHandler.cs
- XmlReader.cs
- WebServicesDescriptionAttribute.cs
- PageAsyncTask.cs
- InputReport.cs
- ListView.cs
- StylusLogic.cs
- GlyphRunDrawing.cs
- BuilderPropertyEntry.cs
- ScriptModule.cs
- Pair.cs
- SelectionRangeConverter.cs
- HtmlAnchor.cs
- ClrPerspective.cs
- PrimitiveCodeDomSerializer.cs
- ErrorTableItemStyle.cs
- DataPagerCommandEventArgs.cs
- ToolStripContainer.cs
- SchemaMerger.cs
- ISCIIEncoding.cs
- StorageMappingFragment.cs
- DataGridTablesFactory.cs
- TextPenaltyModule.cs
- TextSimpleMarkerProperties.cs
- StateItem.cs
- Msec.cs
- ToolStripSystemRenderer.cs
- GridViewColumnHeader.cs
- SecurityHelper.cs
- Assert.cs
- ContractBase.cs
- WpfKnownType.cs
- CodeStatementCollection.cs
- PackageRelationshipSelector.cs
- ConditionalBranch.cs
- ZoneButton.cs
- DocumentGrid.cs