Code:
/ DotNET / DotNET / 8.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
- TargetFrameworkUtil.cs
- ListViewDeleteEventArgs.cs
- XPathException.cs
- Item.cs
- ProfileModule.cs
- ParseChildrenAsPropertiesAttribute.cs
- SqlComparer.cs
- PersonalizationProvider.cs
- PeerPresenceInfo.cs
- NullableIntSumAggregationOperator.cs
- SystemDiagnosticsSection.cs
- CachedFontFamily.cs
- DataGridViewTextBoxColumn.cs
- DockProviderWrapper.cs
- File.cs
- AlgoModule.cs
- ZipArchive.cs
- FixedPosition.cs
- ISessionStateStore.cs
- XmlImplementation.cs
- TraceContext.cs
- XmlChoiceIdentifierAttribute.cs
- ConnectionManagementSection.cs
- ZipIOExtraFieldElement.cs
- BuildManager.cs
- ElementNotEnabledException.cs
- FontDifferentiator.cs
- FontFamily.cs
- BitmapFrame.cs
- OutputCacheSection.cs
- CodeMethodInvokeExpression.cs
- HttpRawResponse.cs
- CodeSpit.cs
- ImageSourceTypeConverter.cs
- SortedDictionary.cs
- IssuedTokensHeader.cs
- Brush.cs
- MonthChangedEventArgs.cs
- PluralizationService.cs
- ArrayTypeMismatchException.cs
- FormViewModeEventArgs.cs
- IndentedWriter.cs
- ContainsSearchOperator.cs
- DoWorkEventArgs.cs
- MediaElementAutomationPeer.cs
- ZipIOLocalFileBlock.cs
- PointLightBase.cs
- AmbientValueAttribute.cs
- HwndProxyElementProvider.cs
- TraceHandler.cs
- TypeName.cs
- PersonalizationProviderHelper.cs
- IgnoreSection.cs
- KeyManager.cs
- DBConnectionString.cs
- Track.cs
- XmlNodeReader.cs
- WinInetCache.cs
- Privilege.cs
- SmiContext.cs
- Int32AnimationUsingKeyFrames.cs
- SuppressIldasmAttribute.cs
- LayoutTable.cs
- DateTime.cs
- SoapSchemaMember.cs
- WrappedIUnknown.cs
- SQLBytes.cs
- Stacktrace.cs
- CurrencyManager.cs
- XmlSchemaIdentityConstraint.cs
- UnmanagedMemoryAccessor.cs
- ContourSegment.cs
- MemberRestriction.cs
- RegularExpressionValidator.cs
- _ListenerRequestStream.cs
- DuplexSecurityProtocolFactory.cs
- CompilerWrapper.cs
- SqlStatistics.cs
- ShapeTypeface.cs
- SoapConverter.cs
- _Win32.cs
- AvTraceDetails.cs
- PrivilegeNotHeldException.cs
- PasswordBox.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- StyleReferenceConverter.cs
- Style.cs
- CompilationPass2Task.cs
- FeatureSupport.cs
- XsdCachingReader.cs
- RectAnimationUsingKeyFrames.cs
- FontConverter.cs
- BinaryNode.cs
- FileDialogPermission.cs
- DataServiceStreamProviderWrapper.cs
- ProcessHostConfigUtils.cs
- ByteKeyFrameCollection.cs
- XmlDigitalSignatureProcessor.cs
- IdentityNotMappedException.cs
- CoreSwitches.cs