Search code examples
c#winformschecklistbox

I have checklistBox and I want to get the selected item's valuememebr and display member c#


I have a checklistbox where users can select multiple items, I have to go through the whole list and check the checked items:

foreach (var itemChecked in chklistCurrency.CheckedItems)
{
    var row = (itemChecked as DataRowView)?.Row;
    // ...
}

I tried to use datarowview and datarow alone it gives me error in Null value reference

Here is my another code but Value and DisplayMember are in redline

foreach (var itemChecked in chklistCurrency.CheckedItems)
{
    var cra = new CurrencyAccount();
    cra.CurrencyName = itemChecked.ValueMember;
    cra.CurrencySymbol = itemChecked.DisplayMember;  
    // ...
}


DataSource of the checklist was inserted like this 

   var currency = db.currencies.ToList();
            foreach (var item in currency)
            {
                chklistCurrency.DisplayMember = item.currencyName;
                chklistCurrency.ValueMember = item.currencySymbol;                
                chklistCurrency.Items.Add(item.currencyName);
            }

Solution

  • checklistbox sourse data code

       string mainconn = (helper.CnnVal("poscon"));
                SqlConnection sqlconn = new SqlConnection(mainconn);
                string sqlquery = "select currencyName,currencySymbol from [dbo].[currency]";
                SqlCommand sqlComm = new SqlCommand(sqlquery, sqlconn);
                sqlconn.Open();
                SqlDataAdapter sda = new SqlDataAdapter(sqlComm);
                System.Data.DataTable dt = new System.Data.DataTable();
                sda.Fill(dt);
                this.chklistCurrency.DataSource = dt;
                ((System.Windows.Forms.ListBox)chklistCurrency).DisplayMember = "currencyName";
                ((System.Windows.Forms.ListBox)chklistCurrency).ValueMember = "currencySymbol";
    

    retrieving the checked item with this code

      foreach (var itemChecked in chklistCurrency.CheckedItems)
                    {
                        currencyaccount cra = new currencyaccount();
                        var row = (itemChecked as DataRowView).Row;                    
                        cra.currencyName = row.Field<string>("currencyName");
                        cra.currencySymbol = row.Field<string>("currencySymbol");
                        cra.accountId = at.accountId;
                        db.currencyaccounts.Add(cra);
                        db.SaveChanges();                       
                    }