WPF将Listview中的图标和文本与列相结合
我正在用WPF编写简单的文件资源管理器,我的Listview有5列:名称、扩展名、大小、日期和属性 XAML看起来是这样的:WPF将Listview中的图标和文本与列相结合,wpf,listview,icons,Wpf,Listview,Icons,我正在用WPF编写简单的文件资源管理器,我的Listview有5列:名称、扩展名、大小、日期和属性 XAML看起来是这样的: <ListView Name="ListView" BorderThickness="2,0,2,0" BorderBrush="Gray" Height="Auto" Width="Auto" > <ListView.View> <GridView> <GridViewColumn Header="Nam
<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?您需要像这样为GridViewColumn创建CellTemplate
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="450">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="<Your Image Source>"/>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
你需要为“姓名”列创建自己的名称。在celltemplate中粘贴图像和文本块是一件容易的事。获得图标要难得多