set DisplayMeber and ValueMember from XML using C#

Hi
I want to the displaymember and valuemember from XMLdocument to Combobox in Windows application

I am tring with the following code...
System.Collections.Generic.List<KeyValuePair<string, string>> ComBoData = new List<KeyValuePair<string, string>>();
                        ComBoData.Add(new KeyValuePair<string, string>(xElm.GetAttribute("Title").ToString(), xElm.GetAttribute("ID").ToString()));
                        ddl_List.DataSource = ComBoData;
                        ddl_List.DisplayMember = ?
                        ddl_List.ValueMember = ?

Open in new window

LVL 11
Vivek ThangaswamyAsked:
Who is Participating?
 
BinuthConnect With a Mentor Commented:
hmm... problem was you are trying to create new object ComBoData in every loop, so it always contains one value

change the code like...
try
	{
 
		System.Collections.Generic.List<KeyValuePair<string , string>> ComBoData = new List<KeyValuePair<string , string>>();
		foreach (System.Xml.XmlElement xElm in xDoc.DocumentElement.ChildNodes)
		{
			if (xElm.Name.ToLower() == "list")
			{
				ComBoData.Add(new KeyValuePair<string , string>(xElm.GetAttribute("Title").ToString() , xElm.GetAttribute("ID").ToString()));
			}
		}
		ddl_List.DataSource = ComBoData;
		ddl_List.DisplayMember = "key";
		ddl_List.ValueMember = "value";
	}
	catch (Exception ex)
	{
		MessageBox.Show(ex.Message.ToString());
	}

Open in new window

0
 
BinuthCommented:
use "key" and "value"

like...
System.Collections.Generic.List<KeyValuePair<string, string>> ComBoData = new List<KeyValuePair<string, string>>();
                        ComBoData.Add(new KeyValuePair<string, string>(xElm.GetAttribute("Title").ToString(), xElm.GetAttribute("ID").ToString()));
                        ddl_List.DataSource = ComBoData;
                        ddl_List.DisplayMember = "value";
                        ddl_List.ValueMember = "key";

Open in new window

0
 
Vivek ThangaswamyAuthor Commented:
Hope this is correct
ddl_List.DisplayMember = "Key";
ddl_List.ValueMember = "Value";
But the result is nothing :(
even in ddl_List.text it has the value
 
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
BinuthCommented:
small letter (k) and (v)
ddl_List.DisplayMember = "key";
ddl_List.ValueMember = "value";
0
 
Vivek ThangaswamyAuthor Commented:
i tried small also ... same result :(
0
 
BinuthCommented:
or pls provide full code
0
 
BinuthCommented:
it's working for me, can you post full code...
0
 
Vivek ThangaswamyAuthor Commented:
Chk this

 foreach (System.Xml.XmlElement xElm in xDoc.DocumentElement.ChildNodes)
            {
                if (xElm.Name.ToLower() == "list")
                {
                    try
                    {
                        System.Collections.Generic.List<KeyValuePair<string, string>> ComBoData = new List<KeyValuePair<string, string>>();
                        ComBoData.Add(new KeyValuePair<string, string>(xElm.GetAttribute("Title").ToString(), xElm.GetAttribute("ID").ToString()));
                        ddl_List.DataSource = ComBoData;
                        ddl_List.DisplayMember = "key";
                        ddl_List.ValueMember = "value";
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message.ToString());
                    }
                }
            }

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.