在不使用XAML的情况下将SubItems添加到ListView

时间:2011-01-14 01:29:35

标签: c# wpf listview listviewitem

如何将子项添加到ListView?我需要动态生成所有内容,但我发现的每个示例都使用XAML。

非WPF非常简单:

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

如何在不使用XAML的情况下在WPF中添加子项?

3 个答案:

答案 0 :(得分:6)

如前所述,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" });
    }

答案 1 :(得分:5)

“WPF方式”是将listview绑定到表示要显示的数据的集合。然后将包含数据的对象添加到该集合。您几乎从不应该按照计划手动将ListViewItems添加到列表中。我可以拿出一个例子,但是SO上已经有很多线程可以解决这个问题:

  1. Add programmatically ListViewItem to Listview in WPF
  2. WPF ListView - how to add items programmatically?

答案 2 :(得分:-3)

SubItem还是ListItem? 易:

myListbox.Items.Add(object);

您可以将任何类型的对象添加到该集合或特定的ListBoxItem对象中,如下所示:

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