110,535
社区成员
发帖
与我相关
我的任务
分享
public class UserInfo //我自己定义了一个类, 将来赋值给Tag
{
private string id;
public string ID
{
set { id = value; }
get { return id; }
}
private string password;
public string PassWord
{
set { password = value; }
get { return password; }
}
}
public void LoadXmlFileInTreeView(TreeView treeView, string fileName)
{
XmlTextReader reader = null;
TreeNode n = null;
reader = new XmlTextReader(fileName);
n = new TreeNode(Path.GetFileNameWithoutExtension(fileName));
treeView.Nodes.Add(n);
UserInfo userid= new UserInfo(); //自己定义的类,要赋值给Tag
while(reader.Read())
{
if(reader.NodeType == XmlNodeType.Element)
{
bool isEmptyElement = reader.IsEmptyElement;
StringBuilder text = new StringBuilder();
text.Append(reader.Name);
int attributeCount = reader.AttributeCount;
if(attributeCount > 0)
{
text.Append("");
for(int i = 0; i < attributeCount; i++)//给UserInfo 赋值
{
if(i!=0) text.Append(", ");
reader.MoveToAttribute(i);
if (reader.Name == "ID")
userid.ID = reader.Value;
else if((reader.Name == "PassWord"))
userid.PassWord = reader.Value;
}
text.Append("");
}
}
..........................
..........................
else if(reader.NodeType == XmlNodeType.Text)//UserInfo保存到Tag中
{
n = n.Nodes.Add(reader.Value);
n.Tag = userid; //问题出在这里, 为什么所有的Tag储存的值都是同样的啊?
//Tag里要存储不同的用户信息, 好像Tag的值随着UserInfo类变化,
//但UserInfo写入下一条信息的时候,上次赋值的Tag也跟着变化,
}
}
treeView.ExpandAll();
reader.Close();
}
while(reader.Read())
{
UserInfo userid= new UserInfo(); //自己定义的类,要赋值给Tag