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