Update Reference Sources to .NET Framework 4.6.1
[mono.git] / mcs / class / referencesource / System.Data / System / Data / DataTablePropertyDescriptor.cs
1 //------------------------------------------------------------------------------
2 // <copyright file="DataTablePropertyDescriptor.cs" company="Microsoft">
3 //     Copyright (c) Microsoft Corporation.  All rights reserved.
4 // </copyright>                                                                
5 // <owner current="true" primary="true">[....]</owner>
6 // <owner current="true" primary="false">[....]</owner>
7 // <owner current="false" primary="false">[....]</owner>
8 //------------------------------------------------------------------------------
9
10 namespace System.Data {
11     using System;
12     using System.ComponentModel;
13
14     internal sealed class DataTablePropertyDescriptor : PropertyDescriptor {
15
16         DataTable table;
17
18         public DataTable Table {
19             get {
20                 return table;
21             }
22         }
23
24         internal DataTablePropertyDescriptor(DataTable dataTable) : base(dataTable.TableName, null) {
25             this.table = dataTable;    
26         }
27
28         public override Type ComponentType {
29             get {
30                 return typeof(DataRowView);
31             }
32         }
33
34         public override bool IsReadOnly {
35             get {
36                 return false;
37             }
38         }
39
40         public override Type PropertyType {
41             get {
42                 return typeof(IBindingList);
43             }
44         }
45
46         public override bool Equals(object other) {
47             if (other is DataTablePropertyDescriptor) {
48                 DataTablePropertyDescriptor descriptor = (DataTablePropertyDescriptor) other;
49                 return(descriptor.Table == Table);
50             }
51             return false;
52         }
53
54         public override Int32 GetHashCode() {
55             return Table.GetHashCode();
56         }
57
58         public override bool CanResetValue(object component) {
59             return false;
60         }
61
62         public override object GetValue(object component) {
63             DataViewManagerListItemTypeDescriptor dataViewManagerListItem = (DataViewManagerListItemTypeDescriptor) component;
64             return dataViewManagerListItem.GetDataView(table);
65         }
66
67         public override void ResetValue(object component) {
68         }
69
70         public override void SetValue(object component, object value) {
71         }
72
73         public override bool ShouldSerializeValue(object component) {
74             return false;
75         }
76     }   
77 }
78