【发布时间】:2011-06-14 18:08:11
【问题描述】:
而不是像这样将字符串数组m_List中的每一项添加到ListBox destinationList中:
foreach (object name in m_List)
{
destinationList.Items.Add((string)name);
}
有没有更好的办法?
我不想将数据绑定到destinationList,因为我想稍后从ListBox中删除一些条目。
【问题讨论】:
-
除了字符串转换之外,如果绑定不是您的选择,我在上面的代码中没有发现任何不好的地方。但我建议您将列表框绑定到您的收藏(ObservableCollection 会更好)。即使有比这更好的东西,它最终也会遍历你的集合。如果您要经常使用它,您可以为此编写一个方法,将您的列表作为参数发送。
-
我不想绑定它,因为我想稍后从中删除一些项目。
-
为什么你认为你不能删除绑定的项目?
-
其实我试过使用ItemsSource。我有一个带有复选框的树视图,其所选项目将进入destinationList。所以在选中它应该被添加并且在未选中它应该被删除。因此,如果我删除所有并再次尝试通过单击头节点添加它会显示错误,因为在使用 ItemsSource 时操作无效。改为使用 ItemsControl.ItemsSource 访问和修改元素。
-
为此,您可以添加/删除项目或清除绑定到 ListBox 的整个 ObservableCollection,而不是使用数组。