有没有办法只将当前属性值分配给另一个属性,以便在以后更改该值时它不会更新? UWP C#

问题描述

我正在尝试制作一个 UWP 应用程序,您可以在其中单击添加按钮,使用文件打开选择器选择一个文件(图像),然后将其显示在列表视图项中。

问题是我创建了一个“全局”位图图像作为可以更改的图像源

BitmapImage tileBitmapImage = new BitmapImage();

以便其来源稍后更改为单击事件中选择的图像

using (IRandomAccessstream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{ await tileBitmapImage.SetSourceAsync(fileStream); }

然后在创建列表视图项时将 BitmapImage 及其源分配为 Image 源

Image tileImage = new Image()
                {
                    Source = tileBitmapImage,Margin = new Thickness(0,10,0),Width = 400,Height = 100,};

但是每次用户添加一个列表视图项并选择另一个图像时,所有先前设置的图像都会更改为刚刚选择的图像

有什么解决办法吗?

解决方法

您应该尝试每次调用 create new image object instance

喜欢

BitmapImage bmp = new BitmapImage();
IRandomAccessStream stream = await pic.OpenReadAsync();
bmp.SetSource(stream);

Image tileImage = new Image()
{
                    Source = bmp,}

拥有一个全局 tileBitmapImage 变量会导致所有列表项显示相同的图像(最后一个由用户选择)