在WPF应用程序中用c#向ListView添加项

本文关键字:ListView 添加 WPF 应用程序 | 更新日期: 2023-09-27 18:06:48

我想在磁盘上创建一个文件列表视图,以便在选中时进行进一步处理。因此,我创建了一个包含filename、date和size列的listview。然后,我用以下函数加载listview:

private void Window_Loaded(object sender, RoutedEventArgs e)  
{  
    foreach (string s in Directory.GetLogicalDrives())  
    {  
        filelist.Items.Add(s);   
    }  
}  

列出系统中要启动的驱动器,这很好,但是屏幕上显示的是

filename date size  
c:'      c:'  c:'  
d:'      d:'  d:'

那么,我的问题是,我如何设置子列日期和大小为""" " ?

在WPF应用程序中用c#向ListView添加项

你似乎还有很多东西要学,所以我就给你一些提示让你开始,否则这个答案就太长了。

你有3列,每一列都从同一个对象(字符串)获取数据。

创建一个新类,它将保存您的3列的数据:

class Drive
{
    public string Name { get; set; }
    public string Date { get; set; }
    public string Size { get; set; }
}

然后替换这个:

foreach (string s in Directory.GetLogicalDrives())  
{  
    filelist.Items.Add(s);   
}

,这将生成数据项:

var drives = Directory.GetLogicalDrives().Select(d => new Drive { Name = d });
foreach (var drive in drives)
{
    MyListView.Items.Add(drive);
}

像这样设置你的ListView,以便每列从每个项目中自己的属性获取数据:

<ListView x:Name="MyListView">
    <ListView.View>
        <GridView>
            <GridView.Columns>
                <GridViewColumn Header="filename" DisplayMemberBinding="{Binding Name}"/>
                <GridViewColumn Header="date"  DisplayMemberBinding="{Binding Date}"/>
                <GridViewColumn Header="size"  DisplayMemberBinding="{Binding Size}"/>
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>