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
- TableAutomationPeer.cs
- DictionaryBase.cs
- FormViewPageEventArgs.cs
- AutomationTextAttribute.cs
- TableNameAttribute.cs
- ToolStripStatusLabel.cs
- SafeSystemMetrics.cs
- PointConverter.cs
- KeyValuePairs.cs
- ListViewAutomationPeer.cs
- MailSettingsSection.cs
- JoinTreeNode.cs
- DispatcherOperation.cs
- FullTextBreakpoint.cs
- FloaterBaseParaClient.cs
- GB18030Encoding.cs
- InputLanguageEventArgs.cs
- Matrix.cs
- TemplateComponentConnector.cs
- ScrollEventArgs.cs
- TimelineClockCollection.cs
- AssemblyNameEqualityComparer.cs
- PackageDigitalSignatureManager.cs
- OpenFileDialog.cs
- ListViewEditEventArgs.cs
- ConstraintCollection.cs
- QilXmlReader.cs
- Operators.cs
- CustomErrorsSectionWrapper.cs
- DataGridViewAccessibleObject.cs
- LambdaCompiler.Lambda.cs
- SqlBuilder.cs
- InvalidOperationException.cs
- PageStatePersister.cs
- PersistenceTypeAttribute.cs
- OdbcConnectionStringbuilder.cs
- ListItemsCollectionEditor.cs
- PromptBuilder.cs
- InternalTypeHelper.cs
- Expander.cs
- ISessionStateStore.cs
- RemoteWebConfigurationHostStream.cs
- Keyboard.cs
- MenuItem.cs
- XPathDescendantIterator.cs
- NetworkInformationException.cs
- SizeValueSerializer.cs
- CapacityStreamGeometryContext.cs
- MULTI_QI.cs
- InfoCardListRequest.cs
- CheckBoxAutomationPeer.cs
- HttpCacheVaryByContentEncodings.cs
- SendMailErrorEventArgs.cs
- DataGridCellsPresenter.cs
- AttachmentCollection.cs
- AtomMaterializer.cs
- UpdateProgress.cs
- ServiceThrottlingBehavior.cs
- ContextQuery.cs
- DivideByZeroException.cs
- PersistenceTypeAttribute.cs
- RSACryptoServiceProvider.cs
- TransactionsSectionGroup.cs
- ForwardPositionQuery.cs
- MultiTrigger.cs
- SpotLight.cs
- SqlTransaction.cs
- PageOutputQuality.cs
- _DisconnectOverlappedAsyncResult.cs
- AbstractDataSvcMapFileLoader.cs
- ButtonFieldBase.cs
- IISMapPath.cs
- ExpressionList.cs
- XmlSchemaAny.cs
- WindowVisualStateTracker.cs
- MetricEntry.cs
- DataFormats.cs
- AppSettingsExpressionBuilder.cs
- DataSourceView.cs
- SpotLight.cs
- StatusBarItem.cs
- AlignmentXValidation.cs
- ScrollEvent.cs
- ParameterReplacerVisitor.cs
- TabControl.cs
- RuntimeConfig.cs
- BinaryConverter.cs
- Tracer.cs
- XmlValidatingReaderImpl.cs
- InputElement.cs
- LinkDescriptor.cs
- RIPEMD160.cs
- XmlSchemaInferenceException.cs
- SettingsPropertyValueCollection.cs
- SeekStoryboard.cs
- FontInfo.cs
- DataObjectCopyingEventArgs.cs
- EncoderParameters.cs
- AmbientLight.cs
- TextSelection.cs