Вопрос

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

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

    <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, которые все типовые строки. Как добавить одну строку в ListView для этого объекта?

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

Это было полезно?

Решение

Управление списками 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> Класс отлично работает для большинства случаев)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top