Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / DataColumnPropertyDescriptor.cs / 1 / DataColumnPropertyDescriptor.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
namespace System.Data {
using System.Diagnostics;
using System.ComponentModel;
using System.Data.Common;
internal sealed class DataColumnPropertyDescriptor : PropertyDescriptor {
DataColumn column;
internal DataColumnPropertyDescriptor(DataColumn dataColumn) : base(dataColumn.ColumnName, null) {
this.column = dataColumn;
}
public override AttributeCollection Attributes {
get {
if (typeof(System.Collections.IList).IsAssignableFrom(this.PropertyType)) {
Attribute[] attrs = new Attribute[base.Attributes.Count + 1];
base.Attributes.CopyTo(attrs, 0);
// we don't want to show the columns which are of type IList in the designer
attrs[attrs.Length - 1] = new ListBindableAttribute(false);
return new AttributeCollection(attrs);
} else {
return base.Attributes;
}
}
}
internal DataColumn Column {
get {
return column;
}
}
public override Type ComponentType {
get {
return typeof(DataRowView);
}
}
public override bool IsReadOnly {
get {
return column.ReadOnly;
}
}
public override Type PropertyType {
get {
return column.DataType;
}
}
public override bool Equals(object other) {
if (other is DataColumnPropertyDescriptor) {
DataColumnPropertyDescriptor descriptor = (DataColumnPropertyDescriptor) other;
return(descriptor.Column == Column);
}
return false;
}
public override Int32 GetHashCode() {
return Column.GetHashCode();
}
public override bool CanResetValue(object component) {
DataRowView dataRowView = (DataRowView) component;
if (!column.IsSqlType)
return (dataRowView.GetColumnValue(column) != DBNull.Value);
return (!DataStorage.IsObjectNull(dataRowView.GetColumnValue(column)));
}
public override object GetValue(object component) {
DataRowView dataRowView = (DataRowView) component;
return dataRowView.GetColumnValue(column);
}
public override void ResetValue(object component) {
DataRowView dataRowView = (DataRowView) component;
dataRowView.SetColumnValue(column, DBNull.Value);// no need to ccheck for the col type and set Sql...Null!
}
public override void SetValue(object component, object value) {
DataRowView dataRowView = (DataRowView) component;
dataRowView.SetColumnValue(column, value);
OnValueChanged(component, EventArgs.Empty);
}
public override bool ShouldSerializeValue(object component) {
return false;
}
public override bool IsBrowsable {
get {
return (column.ColumnMapping == System.Data.MappingType.Hidden ? false : base.IsBrowsable);
}
}
}
}
// 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
- ArrayElementGridEntry.cs
- TemplateControlBuildProvider.cs
- FontDriver.cs
- DataGridPageChangedEventArgs.cs
- PartialCachingControl.cs
- BufferedMessageWriter.cs
- GenericEnumConverter.cs
- ImageField.cs
- DeploymentSection.cs
- PropertyPushdownHelper.cs
- NullableDecimalMinMaxAggregationOperator.cs
- PropertyInformation.cs
- AtomParser.cs
- WebPartConnectionsConfigureVerb.cs
- XhtmlStyleClass.cs
- AnimationTimeline.cs
- DropShadowEffect.cs
- TemplateContent.cs
- FactoryMaker.cs
- Condition.cs
- ClientRuntimeConfig.cs
- FileDataSourceCache.cs
- ArgumentFixer.cs
- Aggregates.cs
- SafeFileMappingHandle.cs
- NodeFunctions.cs
- IPEndPointCollection.cs
- FileDialogCustomPlace.cs
- ContentHostHelper.cs
- SocketException.cs
- AutoGeneratedField.cs
- DataGridViewHeaderCell.cs
- AttachedPropertyBrowsableAttribute.cs
- Rect3D.cs
- OdbcUtils.cs
- TransactionScope.cs
- ViewCellRelation.cs
- DoubleConverter.cs
- CommonObjectSecurity.cs
- CompilationUnit.cs
- Exception.cs
- IDispatchConstantAttribute.cs
- SqlDataSourceFilteringEventArgs.cs
- FirstMatchCodeGroup.cs
- WebPartMenuStyle.cs
- SnapshotChangeTrackingStrategy.cs
- UIElementCollection.cs
- IOException.cs
- ByteRangeDownloader.cs
- Subtree.cs
- BitmapEffectGroup.cs
- EventRoute.cs
- FacetDescriptionElement.cs
- EnvelopedPkcs7.cs
- XmlSchemaCompilationSettings.cs
- SiteMapNodeItemEventArgs.cs
- SortDescription.cs
- TextEmbeddedObject.cs
- SchemaTypeEmitter.cs
- ToolStripLocationCancelEventArgs.cs
- DeferredSelectedIndexReference.cs
- TraceSource.cs
- _SslSessionsCache.cs
- SerializationInfoEnumerator.cs
- RoleServiceManager.cs
- OleDbException.cs
- WindowsTooltip.cs
- Label.cs
- XmlSchemaImporter.cs
- ReturnType.cs
- RegexParser.cs
- UriTemplateDispatchFormatter.cs
- Graph.cs
- PrefixHandle.cs
- FormsAuthenticationModule.cs
- DurableOperationAttribute.cs
- FormViewDeletedEventArgs.cs
- InkCollectionBehavior.cs
- Int16Animation.cs
- ConstraintEnumerator.cs
- DiscoveryDocumentReference.cs
- CodeStatementCollection.cs
- QueryCursorEventArgs.cs
- TypedTableBaseExtensions.cs
- ExpressionEvaluator.cs
- InternalCache.cs
- Version.cs
- DefaultTraceListener.cs
- KeyManager.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- UInt16Storage.cs
- StrongNameHelpers.cs
- MaskDescriptor.cs
- EditorZone.cs
- TypefaceMap.cs
- XPathCompileException.cs
- FrameDimension.cs
- ServicePointManager.cs
- OracleCommand.cs
- GrammarBuilderWildcard.cs