我想在磁盘上创建文件列表视图,以便在选中时进行进一步处理。所以我创建了一个列表视图,其中包含列文件名,日期和大小。然后我使用以下函数加载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:\
所以,我的问题是,如何将子列的日期和大小设置为""
或" "
?
答案 0 :(得分:2)
你似乎有很多需要学习的东西,所以我只会给你一些线索让你开始,因为否则这个答案会太长。
你有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>