Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF应用程序中向C#中的ListView添加项_C#_Wpf_Listview - Fatal编程技术网

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

在WPF应用程序中向C#中的ListView添加项,c#,wpf,listview,C#,Wpf,Listview,我想创建磁盘上文件的列表视图,以便在选中时进行进一步处理。因此,我创建了一个包含文件名、日期和大小列的列表视图。然后,我使用以下函数加载listview: private void Window_Loaded(object sender, RoutedEventArgs e) { foreach (string s in Directory.GetLogicalDrives()) { filelist.Items.Add(s); }

我想创建磁盘上文件的列表视图,以便在选中时进行进一步处理。因此,我创建了一个包含文件名、日期和大小列的列表视图。然后,我使用以下函数加载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:\

所以,我的问题是,如何将子列的日期和大小设置为

您似乎有很多东西需要学习,所以我只给您一些线索,让您开始学习,否则这个答案会太长

您有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 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>