Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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.
//
// [....]
// [....]
// [....]
//-----------------------------------------------------------------------------
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SpecialTypeDataContract.cs
- QualificationDataItem.cs
- DataTableCollection.cs
- WebPartVerb.cs
- TreeNodeEventArgs.cs
- X509CertificateChain.cs
- RelationalExpressions.cs
- OdbcEnvironment.cs
- ExpandCollapsePattern.cs
- Int32.cs
- RangeExpression.cs
- RegistrySecurity.cs
- Clause.cs
- ControlCachePolicy.cs
- DescendentsWalkerBase.cs
- OrthographicCamera.cs
- ToolboxItem.cs
- RawTextInputReport.cs
- Pkcs7Recipient.cs
- TransactionFlowElement.cs
- ActivityInstance.cs
- WmlPageAdapter.cs
- BaseDataList.cs
- OperationCanceledException.cs
- InkCanvas.cs
- Tuple.cs
- GridViewUpdatedEventArgs.cs
- PanelStyle.cs
- LayoutEditorPart.cs
- RenderDataDrawingContext.cs
- Resources.Designer.cs
- TerminateSequenceResponse.cs
- ServicePointManagerElement.cs
- tooltip.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- EdgeModeValidation.cs
- DiscoveryClientRequestChannel.cs
- JsonFormatWriterGenerator.cs
- HwndStylusInputProvider.cs
- RoutedEventHandlerInfo.cs
- Input.cs
- ETagAttribute.cs
- HtmlEmptyTagControlBuilder.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ValidationErrorCollection.cs
- GeneralTransformGroup.cs
- MetadataUtil.cs
- ThousandthOfEmRealPoints.cs
- DesignTimeXamlWriter.cs
- DecoderExceptionFallback.cs
- DbConnectionClosed.cs
- DriveNotFoundException.cs
- WindowsTab.cs
- ViewStateException.cs
- DataServiceQueryOfT.cs
- DataGrid.cs
- ApplicationFileParser.cs
- XmlLanguageConverter.cs
- CodeGen.cs
- VisualTreeHelper.cs
- OleCmdHelper.cs
- HashCodeCombiner.cs
- HtmlInputPassword.cs
- Vector3DAnimation.cs
- ComponentCommands.cs
- CategoryGridEntry.cs
- Help.cs
- FileSystemEventArgs.cs
- HttpModule.cs
- CompensationHandlingFilter.cs
- SerialErrors.cs
- Stylus.cs
- TiffBitmapEncoder.cs
- SHA256.cs
- ListDictionaryInternal.cs
- BinaryFormatterWriter.cs
- ButtonAutomationPeer.cs
- DataTableMappingCollection.cs
- RepeaterCommandEventArgs.cs
- RawStylusInputCustomData.cs
- SettingsPropertyIsReadOnlyException.cs
- ClickablePoint.cs
- StylusPoint.cs
- PointAnimation.cs
- CacheDependency.cs
- Rotation3DAnimationUsingKeyFrames.cs
- KernelTypeValidation.cs
- TdsEnums.cs
- ExpressionEditorAttribute.cs
- AudioStateChangedEventArgs.cs
- ObjectViewEntityCollectionData.cs
- CookieProtection.cs
- DataTableTypeConverter.cs
- ReversePositionQuery.cs
- EntityDataSourceReferenceGroup.cs
- ServerType.cs
- StreamResourceInfo.cs
- PreservationFileReader.cs
- SqlDeflator.cs
- PointCollectionValueSerializer.cs