c# - 如何将图像添加到 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>
它给了我这个输出:(不要担心我设置的红色背景来识别列表中的图像。)
解决方案
从绑定中删除 ,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>
看看离工作还有多远。
推荐阅读
- firebase - 如果“云消息”数据不再从 Firebase 导出到 BigQuery,会出现什么问题?
- python - Selenium Python:单击 svg 元素以关闭表单
- r - 计算 R 中多路 ANOVA 的功效
- c++ - c++中的vector是指针吗?
- jquery - 过滤数据中的数据表过滤下拉选项
- java - javax.persistence.EntityNotFoundException:具有多对一映射的 Spring Data JPA
- android-studio - 如何使用官方库 Vimeo Networking Library 播放 vimeo Video?
- .net - Web 应用程序在团队应用程序工作室中抛出 IDX21323
- flutter - 如何禁用 Flutter/Dart 实验?
- python - 在 Keras 中进行的自定义回调以停止“过度拟合和过度训练”,这需要太多时间来节省模型和重量