WPF将Listview中的图标和文本与列相结合

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

我正在用WPF编写简单的文件资源管理器,我的Listview有5列:名称、扩展名、大小、日期和属性

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?

您需要像这样为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中粘贴图像和文本块是一件容易的事。获得图标要难得多