преобразовать универсальный тип в список управления - PullRequest
2 голосов
/ 04 июня 2011

Я использую Silverlight Framework 4: Я пытаюсь перечислить свои элементы в общем списке в элемент управления listbox: Но единственными данными, которые получают, является само имя класса.

lsBox => listboxcontrol lsTags => универсальный тип

Мой вопрос: как я могу добавить свои элементы из универсального списка в элемент управления listbox?

мой код:

 lsBox.ItemsSource = lsTags;

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Вы можете использовать свойства DisplayMemberPath и SelectedValuePath вашего элемента управления ListBox, чтобы сообщить ListBox, какое значение свойства должно отображаться для каждого элемента и какое свойство должно использоваться для определения свойства ListBox.SelectedValue. Или используйте ListBox.ItemTemplate для отображения сложных данных, таких как:

<ListBox x:Name="usersInGroupLBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox IsChecked="{Binding IsActive, Mode=TwoWay}" />
                <TextBlock Text="{Binding User.UserName}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Не забывайте, вы можете использовать только публичные свойства для привязки. Проверьте свой класс Tag.

0 голосов
/ 04 июня 2011

Поведение по умолчанию ListBox (и большинства других элементов управления) для отображения пользовательских типов заключается в вызове метода ToString().Поведение по умолчанию заключается в отображении имени класса.

Что вы должны сделать, зависит от того, что вы хотите отобразить, но если это что-то простое, например, отображение значения свойства Name, просто установите DisplayMemberPath свойство :

<ListBox Name="lsBox" DisplayMemberPath="Name" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...