C# 在Xamarin中的ViewModel内部执行image触发器后,如何更新listView?

C# 在Xamarin中的ViewModel内部执行image触发器后,如何更新listView?,c#,listview,xamarin,mvvm,xamarin.forms,C#,Listview,Xamarin,Mvvm,Xamarin.forms,我有一流的产品 我还有一个ViewModel ProductVm继承自BaseViewModel,这个类BaseViewModel继承自ObserveObject,如 现在,ViewModel产品有了一个可观的集合 还有命令 在PageProduct页面中,有一个视图模型的绑定,因此可以根据listView ProductResults上的更改来更新列表 问题 我希望在用户单击显示pincturea.png或pinctureb.png的按钮后,它会更新集合值和GUI 所以它会更新显示的图像 搜索

我有一流的产品

我还有一个ViewModel ProductVm继承自BaseViewModel,这个类BaseViewModel继承自ObserveObject,如

现在,ViewModel产品有了一个可观的集合 还有命令 在PageProduct页面中,有一个视图模型的绑定,因此可以根据listView ProductResults上的更改来更新列表

问题 我希望在用户单击显示pincturea.png或pinctureb.png的按钮后,它会更新集合值和GUI 所以它会更新显示的图像

搜索的解决方案 搜索之后,我看到每个人都说这与 InotifyProperty改变了问题,但据我所知,我已经做了那个部分 这样做

 public class ProductVm : BaseViewModel
并宣布

private ObservableCollection<Product> _productResults = new ObservableCollection<Product>();
        public ObservableCollection<Product> ProductResults
        {
            get => _productResults ;
            set {  _productResults = value; OnPropertyChanged(); }
        }
但由于我正在处理ViewModel,因此无法访问那里的listview

在我的方法中,我遗漏了什么

private void FavoriteProduct(Product product)

我也可以更新GUI吗?

您没有调用模型中已更改的属性

试试这个

public class Product:ObservableObject,  IKeyObject
    {
        [SQLite.PrimaryKey]
        public string Id { get; set; }     //this is cause i am using sqlite
        //other properties
        private bool _isFavorite;
        public bool IsFavorite
        {
          get => _ isFavorite;
          set { _ isFavorite = value; OnPropertyChanged(); }
        } 

    }
 public class ProductVm : BaseViewModel
private ObservableCollection<Product> _productResults = new ObservableCollection<Product>();
        public ObservableCollection<Product> ProductResults
        {
            get => _productResults ;
            set {  _productResults = value; OnPropertyChanged(); }
        }
listview.isRefreshing = true;
//update observableCollection
listview.isRefreshing = false;
private void FavoriteProduct(Product product)
public class Product:ObservableObject,  IKeyObject
    {
        [SQLite.PrimaryKey]
        public string Id { get; set; }     //this is cause i am using sqlite
        //other properties
        private bool _isFavorite;
        public bool IsFavorite
        {
          get => _ isFavorite;
          set { _ isFavorite = value; OnPropertyChanged(); }
        } 

    }