我为我的拼写错误提前道歉,由于我对谷歌翻译的依赖
在Xamarin shell页面之间发送64格式的图像时,接收方ViewModel中的属性不受影响
下面是查询发送代码
await Shell.Current.GoToAsync(
state: $"{nameof(SuppliersByProdectID)}?" +
$"{nameof(Suppliers.SuppliersByProdectID.ItemId)}={item.AIItemId}" + "&" +
//
//Image property is string here
//
$"{nameof(Suppliers.SuppliersByProdectID.Image)}={item.AIItemImage}");
以下是查询收据代码
[QueryProperty(nameof(ItemId), nameof(ItemId))]
[QueryProperty(nameof(Image), nameof(Image))]
public class SuppliersByProdectID : MyBaseViewModel
{
private string image;
public string Image
{
get => image;
set
{
//I set a breakpoint here, but the program does not stop
//at it
SetProperty(ref image, value);
ItemImage = ImagesConverter.GetImageSource(value);
}
}
private ImageSource itemImage;
public ImageSource ItemImage
{
get => itemImage;
set => SetProperty(ref itemImage, value);
}
private string itemId;
public string ItemId
{
get => itemId;
set
{
SetProperty(ref itemId, value);
FillSuppliers();
}
}
}
虽然Image属性在ViewModel调度中带有值,但执行不会传递该属性,并且这是在执行因断点而停止时发生的
1条答案
按热度按时间w46czmvw1#
如果要将Image的字符串传输到导航页面的
ViewMode
l,可以使用Process navigation data using a single method来实现。导航数据可以通过在
ViewModel
上实现IQueryAttributable
接口来接收:SuppliersByProdectID
。以下示例显示了实现IQueryAttributable接口的视图模型类:有关详细信息,请访问https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/shell/navigation#pass-data。