【发布时间】:2019-09-18 19:45:14
【问题描述】:
我在 WPF 中编写简单的文件资源管理器,我有 5 列(名称、扩展名、大小、日期、属性)的 Listview
XAML 看起来像这样:
<ListView Name="ListView" BorderThickness="2,0,2,0" BorderBrush="Gray" Height="Auto" Width="Auto" >
<ListView.View>
<GridView>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="450"/>
<GridViewColumn Header="Extension" DisplayMemberBinding="{Binding Extension}" Width="70"/>
<GridViewColumn Header="Size" DisplayMemberBinding="{Binding Size}" Width="80"/>
<GridViewColumn Header="Date" DisplayMemberBinding="{Binding Date}" Width="80"/>
<GridViewColumn Header="Attributes" DisplayMemberBinding="{Binding Attributes}" Width="60"/>
</GridView>
</ListView.View>
然后,我有五个属性的类 FileInfo,每个属性都通过 DisplayMemberBinding 绑定到列
public class FileInfo
{
public string Name { get; set; }
public string Extension { get; set; }
public string Size { get; set; }
public string Date { get; set; }
public string Attributes { get; set; }
}
var files = new List<FileInfo> { new FileInfo { Name = "Foo", Extension = ".sub", Date = "1.1.2015", Size = "3.05", Attributes = "H" } } //just as test
ListView.ItemsSource = files;
效果很好。
现在,在“名称”列中,我想将文件名与其关联的图标结合起来。我不知道,该怎么做。我不想为图标创建另一列,图标必须包含在名称列中。
有什么想法吗?有没有办法以编程方式执行此操作,还是我需要修改 XAML?
【问题讨论】:
-
您需要为名称列创建自己的CellTemplate。
-
在单元格模板中粘贴图像和文本块很简单。获取图标更难stackoverflow.com/questions/2701263/…