我实际上在我的列表框中显示了我从XML中检索的项目列表。当我点击一个项目时,我将返回相同的方法并创建一个新列表以显示不同的项目。
我想知道为什么它没有清除以前的清单。
这是我使用的代码,我无法弄清楚..
if (e.Error == null)
{
// Retrieving the subfolders
XDocument xdoc = XDocument.Parse(e.Result, LoadOptions.None);
XNamespace aNamespace = XNamespace.Get("http://schemas.datacontract.org/2004/07/System.IO");
var folders = from query in xdoc.Descendants(aNamespace.GetName("DirectoryInfo"))
select new Folder
{
Name = (string)query.Element("OriginalPath"),
};
ObservableCollection<Folder> LFolders = new ObservableCollection<Folder>();
foreach (Folder f in folders)
{
LFolders.Add(f);
}
listBox1.ItemsSource = LFolders;
listBox1.SelectionChanged += new SelectionChangedEventHandler(listBox1_SelectionChanged);
}
答案 0 :(得分:1)
两个建议:
答案 1 :(得分:0)
如果在设置新值之前将Itemssource设置为null,我相信这样可行。此外,您可以尝试使LFolders成为类变量。当您开始该方法时,清除该集合,然后添加到它。绑定到列表框的可观察集合将负责更新列表框。