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
- ToggleButton.cs
- InstanceKeyCompleteException.cs
- HideDisabledControlAdapter.cs
- TemplateKeyConverter.cs
- EntityFrameworkVersions.cs
- CompiledQueryCacheEntry.cs
- SHA384Managed.cs
- InkPresenter.cs
- PermissionToken.cs
- WinFormsComponentEditor.cs
- TypeUtil.cs
- StateChangeEvent.cs
- TextLineResult.cs
- DetailsViewRowCollection.cs
- RepeaterCommandEventArgs.cs
- VScrollProperties.cs
- HtmlControlPersistable.cs
- CallInfo.cs
- HttpCacheVaryByContentEncodings.cs
- Task.cs
- SinglePageViewer.cs
- WindowsStatusBar.cs
- TextFormatterHost.cs
- StrongNameMembershipCondition.cs
- IsolatedStorageException.cs
- SrgsSubset.cs
- TypedTableHandler.cs
- TypeBuilder.cs
- GeneralTransform3DTo2DTo3D.cs
- AssertSection.cs
- DataGridTemplateColumn.cs
- CaseKeyBox.xaml.cs
- NeutralResourcesLanguageAttribute.cs
- ColumnWidthChangedEvent.cs
- Subtree.cs
- ProviderCollection.cs
- ProfileModule.cs
- URLString.cs
- XmlSchemaSequence.cs
- DataRelationPropertyDescriptor.cs
- FunctionCommandText.cs
- DataTable.cs
- ViewgenContext.cs
- UTF32Encoding.cs
- FontUnitConverter.cs
- PopOutPanel.cs
- TypeConverterHelper.cs
- ListenerElementsCollection.cs
- _CacheStreams.cs
- MDIClient.cs
- CompareValidator.cs
- BitmapPalettes.cs
- HtmlFormWrapper.cs
- NonVisualControlAttribute.cs
- DataServiceResponse.cs
- SupportingTokenSpecification.cs
- XamlSerializerUtil.cs
- codemethodreferenceexpression.cs
- HtmlTableRow.cs
- XmlLanguage.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- Vector.cs
- FontFamily.cs
- StyleXamlTreeBuilder.cs
- MD5.cs
- Function.cs
- BufferCache.cs
- HijriCalendar.cs
- ActiveXHost.cs
- InvalidDataContractException.cs
- PropertiesTab.cs
- XamlPointCollectionSerializer.cs
- FlowLayout.cs
- Validator.cs
- EventlogProvider.cs
- PropertyChangingEventArgs.cs
- UnmanagedHandle.cs
- StateChangeEvent.cs
- ActionFrame.cs
- SynchronizationLockException.cs
- SchemaImporterExtensionsSection.cs
- CatchBlock.cs
- ObjectSpanRewriter.cs
- TemplateField.cs
- NullableFloatAverageAggregationOperator.cs
- DataColumnPropertyDescriptor.cs
- UnitySerializationHolder.cs
- SqlConnectionPoolGroupProviderInfo.cs
- SqlMethodCallConverter.cs
- UserControlCodeDomTreeGenerator.cs
- AutomationIdentifier.cs
- ReliabilityContractAttribute.cs
- ISAPIApplicationHost.cs
- MediaSystem.cs
- SqlCacheDependencyDatabase.cs
- XPathExpr.cs
- NavigationPropertyEmitter.cs
- SearchForVirtualItemEventArgs.cs
- ReferenceConverter.cs
- DockProviderWrapper.cs