2013-12-09 2 views
1

У меня есть ListBox, который имеет IEnumerableList<PhoneNumber> как DataSource. Класс PhoneNumber имеет 2 свойства Количество и тип. Я хочу показать число и тип в отдельных столбцах, поэтому я установил свойство MultiColumn true true. Как мне назначить DisplayMembers отдельным столбцам? И поскольку мы находимся в теме ListBox, как вы меняете цвет фона отдельных строк в ListBox?Назначить несколько DisplayMembers в MultiColumn ListBox C#

+0

Почему бы просто не использовать 'GridView' или' ListView'? Они созданы для поддержки нескольких столбцов, 'ListBox' построен для одного столбца. –

ответ

1

Многоугольник ListBox помещает элементы в столько столбцов, сколько необходимо для вертикальной прокрутки. Он не охватывает отдельный элемент во многих столбцах. И, конечно, он не поддерживает несколько DisplayMembers. Используйте ListView или (лучше) DataGridView вместо этого - оба элемента управления имеют столбцы и позволяют сопоставлять разные свойства объектов этим столбцам. Также очень легко установить цвет фона для отдельных строк в DataGridView - используйте обработчик событий DataBindingsComplete.

1

Это WPF

GridView Class

<ListView ItemsSource="{Binding Source=ListPhoneNumber"> 
    <ListView.View> 
    <GridView> 
     <GridViewColumn Header="Number" 
         DisplayMemberBinding="{Binding Path=Number}" /> 
     <GridViewColumn Header="Type" 
         DisplayMemberBinding="{Binding Path=Type}" /> 
    </GridView> 
    </ListView.View> 
</ListView> 
+1

Я верю, что OP говорит о WinForms, потому что для WPF ListBox нет свойства DisplayMember –

0

Как путь вокруг, я отказался от Multicolumn. Я добавил второй ListBox и разместил его рядом с первым, чтобы они выглядели как один объект. Я назначил DataSource одним из других ListBox, но я назначил DisplayMember для Type. Во время выполнения оба объекта выглядят так, как будто они один, выбор всегда выделяет оба списка одновременно с тем же источником данных. Кроме того, у меня хороший визуальный эффект, потому что выбор изменяется в первом списке OnClick и реплицируется на другой OnKeyUp.

Смежные вопросы