Добавить подэлементы в ListView без использования XAML - PullRequest
3 голосов
/ 14 января 2011

Как добавить подпункты в ListView? Мне нужно генерировать все динамически, но каждый найденный пример использует XAML.

Non-WPF было так просто:

ListViewItem lvi = listview.items.add(wahtever);
lvi. blah blah blah

Как добавить подпункты в WPF без использования XAML?

Ответы [ 3 ]

6 голосов
/ 14 января 2011

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

Для полноты здесь приведен XAML, контрастирующий с кодом.

XAML:

    <UniformGrid Columns="2">
        <ListView Name="xamlListView">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="X Value" DisplayMemberBinding="{Binding X}"/>
                    <GridViewColumn Header="Y Value" DisplayMemberBinding="{Binding Y}"/>
                </GridView>
            </ListView.View>
            <ListView.Items>
                <PointCollection>
                    <Point X="10" Y="20"/>
                    <Point X="20" Y="30"/>
                </PointCollection>
            </ListView.Items>
        </ListView>
        <ListView Name="codeListView"/>
    </UniformGrid>

Код:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        var view = new GridView();
        view.Columns.Add(new GridViewColumn { Header = "First Name", DisplayMemberBinding = new Binding("First") });
        view.Columns.Add(new GridViewColumn { Header = "Last Name", DisplayMemberBinding = new Binding("Last") });
        codeListView.View = view;
        codeListView.Items.Add(new { First = "Bill", Last = "Smith" });
        codeListView.Items.Add(new { First = "Jane", Last = "Doe" });
    }
5 голосов
/ 14 января 2011

«Путь WPF» будет привязывать ваш просмотр списка к коллекции, которая представляет данные, которые вы хотите отобразить. Затем добавьте объекты, содержащие data в эту коллекцию. Вам почти никогда не придется иметь дело с добавлением ListViewItems в свой список вручную, как вы планируете. Я мог бы привести пример, но на SO уже есть много потоков, которые решают именно эту проблему:

  1. Программно добавить ListViewItem в ListView в WPF
  2. WPF ListView - как программно добавлять элементы?
0 голосов
/ 14 января 2011

SubItem или ListItem ??Легко:

myListbox.Items.Add(object);

Вы можете добавить любой объект в эту коллекцию или конкретный объект ListBoxItem, например, такой:

this.List.Items.Add(new ListBoxItem{ Content = "Value to display"});
...