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

nit*_*rog 4 c# wpf listview listviewitem

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

非WPF非常简单:

ListViewItem lvi = listview.items.add(wahtever);
lvi. blah blah blah
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*key 7

如前所述,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>
Run Code Online (Sandbox Code Playgroud)

码:

    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" });
    }
Run Code Online (Sandbox Code Playgroud)


Bro*_*ass 6

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

  1. 在WPF中以编程方式将ListViewItem添加到Listview
  2. WPF ListView - 如何以编程方式添加项目?