0

如果我尝试使用 addrange 将此列表“ builtInCats_List = new List<BuiltInCategory>();,”添加到列表框中,则会出现以下错误。

无法从“System.Collections.Generic.List”转换为“System.Windows.Forms.ListBox.ObjectCollection”

如何使用元素类别类型的 revit.db 列表填充表单上的列表框?

4

3 回答 3

1

尝试将您的列表转换为数组:

yourListBox.ObjectCollection.AddRange(builtInCats_List.ToArray());
于 2014-05-12T20:50:12.137 回答
1

看起来 addrange 需要一个数组才能工作。 http://msdn.microsoft.com/en-us/library/z018s5az(v=vs.110).aspx

您是否有一组属于特定 builtInCategory 的元素?如果是这样,请将您的列表项转换为元素数组 [] 并重试。例如,如果您希望使用 addrange 将“墙”添加到列表框:

 Autodesk.Revit.DB.Element[] Walls = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Walls).ToElements().ToArray();
于 2014-05-12T16:31:27.300 回答
0

这些代码行填充了列表框,我通过浏览构建编码器站点发现了这一点。感谢您的帮助。

lstb1.DataSource = builtInCats_List;lstb1.DisplayMember = "名称";

于 2014-05-14T09:46:54.233 回答