ListControl.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. //
  2. // System.Windows.Forms.ListControl.cs
  3. //
  4. // Author:
  5. // stubbed out by Daniel Carrera ([email protected])
  6. // Dennis Hayes ([email protected])
  7. // (C) 2002/3 Ximian, Inc
  8. //
  9. using System;
  10. using System.Drawing;
  11. using System.Collections;
  12. using System.Reflection;
  13. namespace System.Windows.Forms {
  14. // <summary>
  15. //
  16. // </summary>
  17. public abstract class ListControl : Control {
  18. protected string DisplayMember_ = String.Empty;
  19. //ControlStyles controlStyles;
  20. //
  21. // --- Public Properties
  22. //
  23. [MonoTODO]
  24. public object DataSource {
  25. get {
  26. throw new NotImplementedException ();
  27. }
  28. set {
  29. //FIXME:
  30. }
  31. }
  32. [MonoTODO]
  33. public string DisplayMember {
  34. get {
  35. return DisplayMember_;
  36. }
  37. set {
  38. if( DisplayMember_ != value) {
  39. DisplayMember_ = value;
  40. OnDisplayMemberChanged(new EventArgs());
  41. }
  42. }
  43. }
  44. internal string getDisplayMemberOfObj( object obj) {
  45. string objectString = String.Empty;
  46. Type t = obj.GetType();
  47. if( DisplayMember != String.Empty) {
  48. if( t != null) {
  49. PropertyInfo prop = t.GetProperty(DisplayMember);
  50. if( prop != null) {
  51. objectString = prop.GetValue(obj, null).ToString();
  52. }
  53. }
  54. }
  55. if( objectString == String.Empty) {
  56. objectString = obj.ToString();
  57. }
  58. return objectString;
  59. }
  60. internal class ListControlComparer : IComparer {
  61. private ListControl owner_ = null;
  62. public ListControlComparer(ListControl owner) {
  63. owner_ = owner;
  64. }
  65. public int Compare(object x, object y) {
  66. return owner_.getDisplayMemberOfObj(x).CompareTo(owner_.getDisplayMemberOfObj(y));
  67. }
  68. }
  69. [MonoTODO]
  70. public abstract int SelectedIndex {get;set;}
  71. [MonoTODO]
  72. public object SelectedValue {
  73. get {
  74. throw new NotImplementedException ();
  75. }
  76. set {
  77. //FIXME:
  78. }
  79. }
  80. [MonoTODO]
  81. public string ValueMember {
  82. get {
  83. throw new NotImplementedException ();
  84. }
  85. set {
  86. //FIXME:
  87. }
  88. }
  89. //
  90. // --- Public Methods
  91. //
  92. [MonoTODO]
  93. public string GetItemText(object item)
  94. {
  95. throw new NotImplementedException ();
  96. }
  97. //
  98. // --- Public Events
  99. //
  100. [MonoTODO]
  101. public event EventHandler DataSourceChanged;
  102. [MonoTODO]
  103. public event EventHandler DisplayMemberChanged;
  104. //
  105. // --- Protected Constructor
  106. //
  107. [MonoTODO]
  108. protected ListControl()
  109. {
  110. }
  111. //
  112. // --- Protected Properties
  113. //
  114. [MonoTODO]
  115. //protected CurrencyManager DataManager {
  116. // get {
  117. // throw new NotImplementedException ();
  118. // }
  119. //}
  120. //
  121. // --- Protected Methods
  122. //
  123. [MonoTODO]
  124. //protected override bool IsInputKey(Keys keyData)
  125. //{
  126. // //FIXME:
  127. // return base.IsInputKey(keyData);
  128. //}
  129. [MonoTODO]
  130. protected virtual void OnDataSourceChanged(EventArgs e) {
  131. //FIXME:
  132. }
  133. [MonoTODO]
  134. protected virtual void OnDisplayMemberChanged(EventArgs e) {
  135. //FIXME:
  136. }
  137. [MonoTODO]
  138. protected virtual void OnSelectedIndexChanged(EventArgs e) {
  139. //FIXME:
  140. }
  141. [MonoTODO]
  142. protected virtual void OnSelectedValueChanged(EventArgs e){
  143. //FIXME:
  144. }
  145. public event EventHandler SelectedValueChanged;
  146. public event EventHandler ValueMemberChanged;
  147. [MonoTODO]
  148. protected override void OnBindingContextChanged(EventArgs e)
  149. {
  150. //FIXME:
  151. base.OnBindingContextChanged(e);
  152. }
  153. [MonoTODO]
  154. protected abstract void RefreshItem(int index);
  155. }
  156. }