Browse Source

2009-01-11 Ivan N. Zlatev <[email protected]>

	* DataGridViewComboBoxCell.cs: Implement/Fix the data binding.

svn path=/trunk/mcs/; revision=122994
Ivan Zlatev 17 years ago
parent
commit
e6a6ca08ba

+ 4 - 0
mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog

@@ -1,3 +1,7 @@
+2009-01-11  Ivan N. Zlatev  <[email protected]>
+
+	* DataGridViewComboBoxCell.cs: Implement/Fix the data binding.
+
 2008-01-09  Mario Carrion  <[email protected]>
 
 	* MessageBox.cs: Fixed internal UIAIconRectangle property.

+ 9 - 10
mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGridViewComboBoxCell.cs

@@ -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 {