5
Reply

contructor to populate combobox problem

helloise smit

helloise smit

Oct 28 2009 4:31 AM
6.6k

i have a third party combobox and is bound to the stocklocationBindingSource's location field. however because it is a thirdparty component,devexpress they advised that i populate the combobox manually because by just binding it, it only shows the first row in the table.
now: i have about 100 comboboxes and thought it best to have the code in a seperate class and the call that class and pass the parameters using a constructor...but not sure how to go about it. i have the following:
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WinUI.BaseForms;
using WinUI.DataSets;
namespace WinUI.Forms.BackOffice
{
    using WinUI.DataSets;
    using WinUI.DataAccessLayers;
    using WinUI.HelperClasses;
    public partial class frmItemMaintenance : frmButtons
    {
        public frmItemMaintenance()
        {
            InitializeComponent();
            CenterToScreen();
            btnOk.Hide();
        }
        private void frmItemMaintenance_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'stockLocationData.STOCKLOCATION' table. You can move, or remove it, as needed.
           
          
            // TODO: This line of code loads data into the 'itemData.ITEMMASTER' table. You can move, or remove it, as needed.
            //comboBoxEditLocation.DataSource = stockLocationData.Tables[0];
            //comboBoxEditLocation.DisplayMember = "Location";
//will not suffice

            GetComboBoxRows getRows = new GetComboBoxRows(stockLocationData, comboBoxEditLocation,"Location",0);
//thought i can do it like this???
        }
    }

and then my manual code to populate:
 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Configuration;
using System.IO;
using System.Data.SqlClient;
namespace WinUI.HelperClasses
{
    class GetComboBoxRows
    {
        private DataSet dsLocal;
        private DevExpress.XtraEditors.ComboBoxEdit comboBoxLocal;
        private string table;
        int rowLocal;
        //contructor
        public GetComboBoxRows(DataSet ds,DevExpress.XtraEditors.ComboBoxEdit name,string tableName,int rowno)
        {
            dsLocal = ds;
            comboBoxLocal = name;
            table = tableName;
            rowLocal = rowno;
        }
        public void GetRows()
        {
        foreach (DataTable dt in dsLocal.Tables)
            {
                int i = 0;
                foreach (DataRow dr in dt.Rows) //loop through rows
                {
                    comboBoxLocal.Properties.Items.Add(dsLocal.Tables[0].Rows[i][table]);
                    i++;
                }
            }
        }
    }

 
 

Answers (5)