我有一个要求,以更新我的 Jmeter 板上的图像,一旦它已更新下一页(个人资料页)。
导航: Jmeter 板-〉配置文件页面-〉更新图像-〉 Jmeter 板(按下后退按钮)
XAML
<ImageButton x:Name="profilePicThumbnail"
....
Command="{Binding UserProfileBtn}"
IsVisible="{Binding IsRemotePic}">
<ImageButton.Source>
<UriImageSource Uri="{Binding UserPic, Mode=TwoWay}"
CachingEnabled="false"/>
</ImageButton.Source>
</ImageButton>
ViewModel.cs
private Uri userpic;
public Uri UserPic
{
get { return userpic; }
set
{
userpic = value;
OnPropertyChanged();
}
}
如何为UserPic提供数据
UserPic = new Uri(dash.student_details.profile_pic); //URL as a string
但是我的图片没有更新,虽然我在个人资料页面更新后调用了相对方法并返回到 Jmeter 板。从后端接收的URL字符串始终相同(但更新后的图片不同)
有没有办法做到这一点?”
1条答案
按热度按时间e5nszbig1#
更新:
另一种方法是使用MessagingCenter或WeakReferenceMessenger(对于WeakReferenceMessenger,您必须从www.example.com安装CommunityToolkit.Mvvm包nuget.org)。
假设ProfilePage中有一个Clicked方法for button来更新UserPic,在ProfilePage中这个方法中,我们发送一个消息告诉Dashboard的viewmodel来更新UserPic。
因此在DashboardViewModel中,我们只需订阅此消息,然后更新值。
不要忘记实现INotifyPropertyChanged。
现在,当您向后导航或按下后退按钮时,该值应该会更新。
如果你想使用WeakReferenceMessenger,那几乎是一样的,
发送消息:
接收消息:
如果你有什么问题,尽管问。
=================原点答案=============
如果我没理解错的话,你应该不想更新ProfilePage中Dashboard的属性。我做了一个演示来分享我的想法。
假设ProfilePage中有一个Clicked方法来更新UserPic。
在这个方法中,我们做以下事情:
1.首先创建“ Jmeter 板”页,然后
1.然后更改bindingContext(ViewModel页面绑定到)的UserPic属性
1.最后导航到“控制面板”页面
不要忘记设置Dashboard的BindingContext:
希望对你有用。