Добавить строку в виде списка из нескольких столбцов? - PullRequest
0 голосов
/ 10 января 2012

У меня проблемы с добавлением строки, которая отображает все значения члена объекта.

Вот как я настроил свой просмотр списка:

    <ListView Height="178" HorizontalAlignment="Left" Margin="238,31,0,0" Name="SpoolSheetListView" VerticalAlignment="Top" Width="555" HorizontalContentAlignment="Stretch" SelectionMode="Single">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="85"  Header="Column 1" />
                <GridViewColumn Width="120" Header="Column 2" />
                <GridViewColumn Width="120" Header="Column 3" />
                <GridViewColumn Width="120" Header="Column 4" />
                <GridViewColumn Width="115" Header="Column 5" />
            </GridView>
        </ListView.View>
    </ListView>

скажем, myObject имеет 5 членов: member1 to member5, все из которых имеют тип string. Как добавить одну строку в ListView для этого объекта?

Еще раз спасибо людям!

1 Ответ

0 голосов
/ 10 января 2012

Элементы управления списком WPF работают лучше всего, когда вы используете их с привязкой данных; Вы должны связать ItemsSource из ListView со списком объектов и связать каждый столбец со свойством этих объектов.

<ListView ItemsSource="{Binding Items}" Height="178" HorizontalAlignment="Left" Margin="238,31,0,0" Name="SpoolSheetListView" VerticalAlignment="Top" Width="555" HorizontalContentAlignment="Stretch" SelectionMode="Single">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="85"  Header="Column 1" DisplayMemberBinding="{Binding Member1}" />
            <GridViewColumn Width="120" Header="Column 2" DisplayMemberBinding="{Binding Member2}" />
            <GridViewColumn Width="120" Header="Column 3" DisplayMemberBinding="{Binding Member3}" />
            <GridViewColumn Width="120" Header="Column 4" DisplayMemberBinding="{Binding Member4}" />
            <GridViewColumn Width="115" Header="Column 5" DisplayMemberBinding="{Binding Member5}" />
        </GridView>
    </ListView.View>
</ListView>

(Items является свойством DataContext, возвращающего коллекцию объектов)

Чтобы добавить строку в ListView, вам просто нужно добавить элемент в коллекцию Items (обратите внимание, что коллекция должна реализовывать INotifyCollectionChanged, так что ListView уведомляется; класс ObservableCollection<T> отлично работает в большинстве случаев)

...