我有一个包含数据模板的列表
<ListBox Margin="10" Name="lvDataBinding">
<ListBox.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
<TextBlock Text="{Binding Age}" FontWeight="Bold" />
<Image Source="{Binding Source}"/>
</WrapPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我在添加文本块数据方面没有任何问题。除了改变图像源。
Public Property Source() As String
Get
Return m_Source
End Get
Set(value As String)
m_Source = value
End Set
End Property
Private m_Source As String
我想要的是将一个imagecache放到imagesource而不是使用实际的文件字符串作为源,因为在某些情况下我会替换这些图像而你不能删除这个文件你直接用它作为图像源。
我在我的应用程序的某些部分使用这些,以便我只读取文件而不是实际使用它作为图像源
Using ArtworkReader = File.OpenRead(Path.Combine("filepath"))
Dim ArtworkCache = New BitmapImage()
With ArtworkCache
.BeginInit()
.DecodePixelWidth = 50
.DecodePixelHeight = 50
.StreamSource = ArtworkReader
.CacheOption = BitmapCacheOption.OnLoad
.EndInit()
.Freeze()
End With
MPArtwork.Source = ArtworkCache
With ArtworkReader
.Dispose()
.Close()
End With
End Using
我可以在数据模板中实现这些吗?谢谢!
修改:我不认为这与此相关:How to force Image control to close the file that it opens in wpf
我想要的是在DataTemplate中使用它