2009-01-11 Ivan N. Zlatev <contact@i-nz.net>
authorIvan Zlatev <ivan@ivanz.com>
Sat, 10 Jan 2009 23:49:46 +0000 (23:49 -0000)
committerIvan Zlatev <ivan@ivanz.com>
Sat, 10 Jan 2009 23:49:46 +0000 (23:49 -0000)
* DataGridViewComboBoxCell.cs: Implement/Fix the data binding.

svn path=/trunk/mcs/; revision=122994

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewComboBoxCell.cs

index 31e7b2031fc9e865ebc3ac234c79fb2a7f3bfb4e..70f7c9372cec5b7dc02610095ba11abf718eab63 100644 (file)
@@ -1,3 +1,7 @@
+2009-01-11  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * DataGridViewComboBoxCell.cs: Implement/Fix the data binding.
+
 2008-01-09  Mario Carrion  <mcarrion@novell.com>
 
        * MessageBox.cs: Fixed internal UIAIconRectangle property.
index c1be363ae83da408aace7a54009721459848cdec..44fdaabc1034626c7a2254ae731d19dc399069b3 100644 (file)
@@ -127,15 +127,14 @@ namespace System.Windows.Forms {
                [Browsable (false)]
                public virtual ObjectCollection Items {
                        get {
-                               items.Clear ();
-
-                               if (DataGridView != null && DataGridView.BindingContext != null && 
-                                   DataGridView.DataSource != null) {
-                                       CurrencyManager manager = DataGridView.BindingContext[DataGridView.DataSource] as CurrencyManager;
-                                       if (manager != null) {
-                                               items.AddRange (manager.List);
+                               if (DataGridView != null && DataGridView.BindingContext != null 
+                                   && DataSource != null && !String.IsNullOrEmpty (ValueMember)) {
+                                       items.Clear ();
+                                       CurrencyManager dataManager = (CurrencyManager) DataGridView.BindingContext[DataSource];
+                                       if (dataManager != null && dataManager.Count > 0) {
+                                               foreach (object item in dataManager.List)
+                                                       items.Add (item);
                                        }
-                                       
                                }
 
                                return items;
@@ -209,8 +208,8 @@ namespace System.Windows.Forms {
                        editingControl.Items.Clear();
                        editingControl.SelectedIndex = -1;
 
-                       if (DataGridView.DataSource != null) {
-                               editingControl.DataSource = DataGridView.DataSource;
+                       if (DataSource != null) {
+                               editingControl.DataSource = DataSource;
                                editingControl.ValueMember = ValueMember;
                                editingControl.DisplayMember = DisplayMember;
                        } else {