首页 > 解决方案 > 如何将图像添加到 WPF 中的 ListView

问题描述

我想将图像添加到 ListView。我已将图像转换为 BitmapImage。我有包含绑定到 DataTemplate 的 Image 属性的对象集合。

<UserControl.Resources>
        <DataTemplate x:Key="ImageCell">
            <StackPanel Orientation="Horizontal">
                <Image Source="{Binding DocumentPicture,UpdateSourceTrigger=PropertyChanged}" 
                    Stretch="Fill"  IsEnabled="True" Visibility="Visible"/>
            </StackPanel>
        </DataTemplate>
</UserControl.Resources>

 <ListView Name="lstView" Grid.Column="0" Grid.Row="3"  Margin="5" Height="90" Width="Auto"  
            ItemsSource="{Binding ListDocuments ,UpdateSourceTrigger=PropertyChanged}" ItemTemplate=" 
            {StaticResource ImageCell}" BorderThickness="1" Style="{x:Null}" SelectedItem="{Binding 
             SelectedLstImage}" >
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" Style="{x:Null}"/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
</ListView>

它给了我这个输出:(不要担心我设置的红色背景来识别列表中的图像。)

在此处输入图像描述

标签: c#wpflistviewbitmapimage

解决方案


从绑定中删除 ,UpdateSourceTrigger=PropertyChanged 的​​两个实例。他们什么都不做。

移除图像周围的堆栈面板。那是无能为力。

使列表视图成为列表框。给图像一个宽度。

检查您要绑定的东西的名称。

确保 DocumentPicture 设置为某些内容,并且它实际上是一个公共位图图像属性

<UserControl.Resources>
    <DataTemplate x:Key="ImageCell">
            <Image Source="{Binding DocumentPicture}" 
                Width="80"
                Stretch="Fill"  IsEnabled="True" Visibility="Visible"/>
    </DataTemplate>
</UserControl.Resources>

<ListBox Name="lstView" Grid.Column="0" Grid.Row="3"  Margin="5" Height="90" Width="Auto"  
        ItemsSource="{Binding ListDocuments}" ItemTemplate=" 
        {StaticResource ImageCell}" BorderThickness="1" Style="{x:Null}" SelectedItem="{Binding SelectedLstImage}" >
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal" Style="{x:Null}"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
</ListBox>

看看离工作还有多远。


推荐阅读