WPF 中的 ListView 子项

Posted

技术标签:

【中文标题】WPF 中的 ListView 子项【英文标题】:ListView SubItems in WPF 【发布时间】:2021-03-26 02:17:03 【问题描述】:

我开始学习 WPF c#,在 Windows 窗体中我像这样将 SubItems 添加到 ListView

string[] spendDetails = new string[2];
spendDetails[0] = _categoryNames[0];
spendDetails[1] = _categoryValues[0].ToString();
 ListViewItem item = new ListViewItem(spendDetails);
_listSpendingView.Items.Add(item);

我无法在 WPF 中执行此操作,那么如何在 WPF 中将 SubItems 添加到 ListView 中?

【问题讨论】:

"我无法在 WPF 中执行此操作",为什么不呢? ListView1.Items.Add()确实存在于WPF中 @styx 成功了,你知道如何检查子项目文本吗? ListView.Items[i].SubItems[j].Text @styx 根本没有“子项目”,也没有“文本”,我刚刚看到了内容 您可以遍历项目列表或查看 SelectedItem 【参考方案1】:

查看

<ListView x:Name="ListView1" >
    <ListView.View>
        <GridView>
            <GridViewColumn Header="id" DisplayMemberBinding="Binding Path=Id"/>
            <GridViewColumn Header="name" DisplayMemberBinding="Binding Path=Name"/>
            <GridViewColumn Header="age" DisplayMemberBinding="Binding Path=Age"/>
        </GridView>
    </ListView.View>
</ListView>

视图模型

public class ItemViewModel
   
    public Guid Id  get; set; 
    public string Name  get; set; 
    public int Age  get; set; 

演示

        for (int i = 0; i < 3; i++)
        
            var item = new ItemViewModel()
            
                Id = Guid.NewGuid(),
                Name = "User" + i,
                Age = 8 + i
            ;
            this.ListView1.Items.Add(item);
        

【讨论】:

【参考方案2】:

据我所知,你应该只需要

_listSpendingView.Items.Add(_categoryNames[0]);

Items 集合将保存元素以供以后检索,并会自动调用 ToString() 进行显示。

【讨论】:

这是否意味着您将 ListView 与 GridView 一起使用?如果这是真的,请说明你是如何定义它的。

以上是关于WPF 中的 ListView 子项的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 ListView 中的子项?

WPF中元素拖拽的两个实例

平铺视图中的c ++虚拟ListView,无法显示子项

在android中,当我按了listview中的一个子项时,利用ContextMenu弹出菜单,那怎么获取这个子项的数据呢?

listview 列表项中的子项变为空 p.e.当视图回收

C#:在运行时添加项目和子项目时,VirtualMode 中的 ListView 不显示设计时列?