วันจันทร์ที่ 4 ธันวาคม พ.ศ. 2560

การแสดงค่า ใน List Box ใช้Dictionary เป็น Datasource

การใช้ ListBox Datasource เพื่อความง่ายใช้ Dictionary ในการเลือก TitleBox สำหรับ Sheet ใน Revit


FilteredElementCollector collector = new FilteredElementCollector(doc);
                collector.OfCategory(BuiltInCategory.OST_TitleBlocks);
                collector.WhereElementIsElementType();

                //Get ElementId of first title block type.

Dictionary<string,ElementId> datas = 
collection.AsEnumerable().ToDictionary(x=>x.ToString(),y=>y);

listBox1.DataSource = new BindingSource(datas, null); 
listBox1.DisplayMember = "Value"; 
listBox1.ValueMember = "Key"; 

เมื่อเลือก ที่ Selection 
จะเป็น SelectedValue แต่ต้อง ใช้ เป็น 

ElementId id =SelectedValue as ElementId;