INotifyPropertyChanged不起作用(UWP)

问题描述 投票:1回答:1

我需要在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没有显示出来。我的问题是什么?

c# windows visual-studio xaml uwp
1个回答
0
投票

问题是你没有真正实例化一个新的WriteableBitmap,只是改变它的来源。因此,虽然它可能第一次起作用,但它肯定不会起作用,因为依赖属性管理器不会知道您的图像发生变化,除非它的实例发生变化。

尝试在ApplyEffectAsync方法中创建临时WriteableBitmap。

© www.soinside.com 2019 - 2024. All rights reserved.