C# INotifyPropertyChanged不';t工作(UWP)

C# INotifyPropertyChanged不';t工作(UWP),c#,windows,visual-studio,xaml,uwp,C#,Windows,Visual Studio,Xaml,Uwp,我需要刷新视图上的图像 这是我的查看页面: <Image Grid.Row="1" Grid.Column="1" x:Name="OriginalImg" Source="{Binding Orig}" DataContext="{StaticResource MainViewModel}"/> 我正在使用MVVMLibs包。这是我的ViewModel: public class MainViewModel: ViewModelBase { private Writ

我需要刷新
视图上的
图像
这是我的查看页面:

<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;
    }
}
public类MainViewModel:ViewModelBase
{
private WriteableBitmap original=新的WriteableBitmap(1280720);
private WriteableBitmap temp=新的WriteableBitmap(1280720);
公共可写位图源
{
获取{返回原始;}
设置
{
这是原始值;
基础.提高产权变更(“原始”);
}
}
公共异步任务ApplyEffectAsync(存储文件)
{
fileStream=await file.OpenAsync(FileAccessMode.Read);
临时设置源(文件流);
Orig=温度;
}
}

但是我的页面上的
图像
未显示。我的问题是什么?

问题是您并没有真正实例化一个新的WriteableBitmap,只是更改了它的源代码。因此,虽然它可能第一次工作,但之后肯定不会工作,因为依赖项属性管理器不会知道您的图像已更改,除非其Instance发生更改


请尝试使用ApplyEffectAsync方法创建临时WriteableBitmap。

问题在于,您并没有真正实例化一个新的WriteableBitmap,只是更改了它的源。因此,虽然它可能第一次工作,但之后肯定不会工作,因为依赖项属性管理器不会知道您的图像已更改,除非其Instance发生更改


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

调用了
ApplyEffectAsync
的位置?它在另一个类中使用
ICommand
调用,并且此方法工作正常。下一个VS转到我的setter并调用
RaisePropertyChanged
,但ViewIm上没有显示任何内容。我使用
Source=“{Binding Orig}”
好的,我们很清楚,我一直在UWP中使用INotifyPropertyChanged。它的工作lol。。。第二,您的输出窗口显示什么?是否存在任何BindingExpression错误?图像的实际源路径是什么?我没有任何错误或异常。我使用
FilePicker
打开我的图像,然后将其放入
StorageFile
并使用
FileStream
放入
WriteableBitmap
调用
ApplyEffectAsync
的位置?在另一个类中使用
ICommand
调用它,此方法工作正常。下一个VS转到我的setter并调用
RaisePropertyChanged
,但ViewIm上没有显示任何内容。我使用
Source=“{Binding Orig}”
好的,我们很清楚,我一直在UWP中使用INotifyPropertyChanged。它的工作lol。。。第二,您的输出窗口显示什么?是否存在任何BindingExpression错误?图像的实际源路径是什么?我没有任何错误或异常。我使用
FilePicker
打开图像,然后将其放入
StorageFile
并使用
FileStream
放入
WriteableBitmap