2016-11-12 20 views
1

У меня проблема с CheckedListBox. У меня есть список объектов:CheckedListBox - как установить, какой параметр отображаемого объекта?

private WinPcapDeviceList deviceList = WinPcapDeviceList.Instance; 

Это содержит объекты WinPcapDevice. Я хотел бы добавить в список в качестве источника данных для ChecklistBox

CheckList.DataSource = devices; 

Когда я запустить программу на выходе не очень полезно для пользователей, как это выглядит примерно так: checkedlistbox with WinPcapDeviceList as datasource

Я хочу, чтобы это выглядело как это: checkedlistbox with description of devices

Таким образом, в списке есть только описание устройств, вот как вы можете получить описание:

WinPcapDevice.Description(); 

Как я могу установить, какое свойство объекта будет diplayed?

+0

Какие приложения (Winform, WPF) это? – FrenchData

ответ

0

Вы должны указать, какое свойство элемента источника вы хотите отобразить, используя свойство «DisplayMember» CheckedLisbox (https://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox_members(v=vs.90).aspx).

В примере показано, что описание исходит из метода, поэтому вам, возможно, придется создать свойство с помощью геттера, который вызовет этот метод.

Надеюсь, это поможет.

Philippe

+0

Спасибо, я уже исправил его с помощью CheckList.ValueMember = "Description"; И DisplayMember, и ValueMember работают одинаково, не имеют представления о том, в чем разница между ними, если вы знаете и заботитесь объяснить, я был бы рад. – Turbotrdlo

+0

DisplayMember предназначен только для отображения. ValueMember будет использоваться, когда вы вызываете свойство «SelectedValue» в этом флажке. – FrenchData

0

Вы можете динамически добавлять элементы в CheckBoxList или установить DataSource и DisplayMember. Просто получить Name из списка устройств

Используйте foreach цикл как этот

WinPcapDeviceList devices = WinPcapDeviceList.Instance; 

      foreach (WinPcapDevice dev in devices) 
      { 
       checkedListBox1.Items.Add(dev.Name); 
      } 

Использование DataSource и DisplayValue свойство

 checkedListBox1.DataSource = devices; 
     checkedListBox1.DisplayMember = "Name";