我需要在Image
上刷新View
这是我的ViewPage:
<Image Grid.Row="1"
Grid.Column="1"
x:Name="OriginalImg"
Source="{Binding Orig}"
DataContext="{StaticResource MainViewModel}"/>
我正在使用MVVMLibs包。这是我的ViewModel:
public class MainViewModel: ViewModelBase
{
private WriteableBitmap original = new WriteableBitmap(1280,720);
private WriteableBitmap temp = new WriteableBitmap(1280,720);
public WriteableBitmap Orig
{
get { return original; }
set
{
this.original = value;
base.RaisePropertyChanged("Orig");
}
}
public async Task<bool> ApplyEffectAsync(StorageFile file)
{
fileStream = await file.OpenAsync(FileAccessMode.Read);
temp.SetSource(fileStream);
Orig = temp;
}
}
但是我的页面上的Image
没有显示出来。我的问题是什么?
问题是你没有真正实例化一个新的WriteableBitmap,只是改变它的来源。因此,虽然它可能第一次起作用,但它肯定不会起作用,因为依赖属性管理器不会知道您的图像发生变化,除非它的实例发生变化。
尝试在ApplyEffectAsync方法中创建临时WriteableBitmap。