這是我的xml文件;如何將xml數據綁定到comboBox以製作智能?
<UserClass>
<Id>1</Id>
<Name>oss</Name>
<Address>
<Id>1</Id>
<Street>asstreet</Street>
</Address>
</UserClass>
所以我想將這些「節點」添加到組合框項目。 當用戶輸入UserClass並輸入「。」(點)到「UserClass」的末尾時; ID,名稱和其他東西必須在組合框中列出。
用戶鍵入「UserClass」。和 - > combobox得到這些;
UserClass.Id
UserClass.Name
UserClass.Address.Id
UserClass.Address.Street
我嘗試了很多東西,包括那一個;
...
try
{
string parsedNode = ParseComboBox();
XmlReader rdr = XmlReader.Create(new System.IO.StringReader(_globalXml));
comboBox1.Items.Clear();
while (rdr.Read())
{
if (rdr.NodeType == XmlNodeType.Element)
{
comboBox1.Items.Add(rdr.LocalName);
}
comboBox1.DroppedDown = true;
}
//string parsedNode = ParseComboBox();
//XmlNodeList childList = xml.GetElementsByTagName(parsedNode);
////comboBox1.Items.Clear();
//foreach (XmlNode node in childList)
//{
// foreach (var osman in node.ChildNodes)
// {
// comboBox1.Items.Add(parsedNode + "." + osman);
// }
//}
}
catch (Exception)
{
MessageBox.Show("fuuu");
}
}...
private string ParseComboBox()
{
string resultAsXmlNodes = null;
string text = comboBox1.Text;
if (text.EndsWith("."))
{
char[] delimiterChars = { '.' };
string[] words = text.Split(delimiterChars);
foreach (string s in words)
{
resultAsXmlNodes += s;
}
}
return resultAsXmlNodes;
}
它工作不正常。我相信有一個簡單的方法來做到這一點。 那麼,簡單的方法是什麼?或者乾脆, 如何在comboBox中顯示節點名稱?
快速瀏覽一下,您的XML解析看起來是不正確的。如果你將責任分離了一點,並且創建一個函數來從給定節點返回所需的字符串,也許調試起來會更容易?一旦你有這個列表,將它綁定到組合框將會簡單得多 – Origin 2012-07-26 15:47:57