[bcl] Updates referencesource to 4.7.1
[mono-project.git] / mcs / class / referencesource / System.Data / System / Data / DataTablePropertyDescriptor.cs
blob3d9f30c6397662ecfed15a00cf38a52f37c8ed76
1 //------------------------------------------------------------------------------
2 // <copyright file="DataTablePropertyDescriptor.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 // </copyright>
5 // <owner current="true" primary="true">Microsoft</owner>
6 // <owner current="true" primary="false">Microsoft</owner>
7 // <owner current="false" primary="false">Microsoft</owner>
8 //------------------------------------------------------------------------------
10 namespace System.Data {
11 using System;
12 using System.ComponentModel;
14 internal sealed class DataTablePropertyDescriptor : PropertyDescriptor {
16 DataTable table;
18 public DataTable Table {
19 get {
20 return table;
24 internal DataTablePropertyDescriptor(DataTable dataTable) : base(dataTable.TableName, null) {
25 this.table = dataTable;
28 public override Type ComponentType {
29 get {
30 return typeof(DataRowView);
34 public override bool IsReadOnly {
35 get {
36 return false;
40 public override Type PropertyType {
41 get {
42 return typeof(IBindingList);
46 public override bool Equals(object other) {
47 if (other is DataTablePropertyDescriptor) {
48 DataTablePropertyDescriptor descriptor = (DataTablePropertyDescriptor) other;
49 return(descriptor.Table == Table);
51 return false;
54 public override Int32 GetHashCode() {
55 return Table.GetHashCode();
58 public override bool CanResetValue(object component) {
59 return false;
62 public override object GetValue(object component) {
63 DataViewManagerListItemTypeDescriptor dataViewManagerListItem = (DataViewManagerListItemTypeDescriptor) component;
64 return dataViewManagerListItem.GetDataView(table);
67 public override void ResetValue(object component) {
70 public override void SetValue(object component, object value) {
73 public override bool ShouldSerializeValue(object component) {
74 return false;