DataTablePropertyDescriptor.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. namespace System.Data {
  10. using System;
  11. using System.ComponentModel;
  12. internal sealed class DataTablePropertyDescriptor : PropertyDescriptor {
  13. DataTable table;
  14. public DataTable Table {
  15. get {
  16. return table;
  17. }
  18. }
  19. internal DataTablePropertyDescriptor(DataTable dataTable) : base(dataTable.TableName, null) {
  20. this.table = dataTable;
  21. }
  22. public override Type ComponentType {
  23. get {
  24. return typeof(DataRowView);
  25. }
  26. }
  27. public override bool IsReadOnly {
  28. get {
  29. return false;
  30. }
  31. }
  32. public override Type PropertyType {
  33. get {
  34. return typeof(IBindingList);
  35. }
  36. }
  37. public override bool Equals(object other) {
  38. if (other is DataTablePropertyDescriptor) {
  39. DataTablePropertyDescriptor descriptor = (DataTablePropertyDescriptor) other;
  40. return(descriptor.Table == Table);
  41. }
  42. return false;
  43. }
  44. public override Int32 GetHashCode() {
  45. return Table.GetHashCode();
  46. }
  47. public override bool CanResetValue(object component) {
  48. return false;
  49. }
  50. public override object GetValue(object component) {
  51. DataViewManagerListItemTypeDescriptor dataViewManagerListItem = (DataViewManagerListItemTypeDescriptor) component;
  52. return dataViewManagerListItem.GetDataView(table);
  53. }
  54. public override void ResetValue(object component) {
  55. }
  56. public override void SetValue(object component, object value) {
  57. }
  58. public override bool ShouldSerializeValue(object component) {
  59. return false;
  60. }
  61. }
  62. }