Xamarin表单-MVVM可观察的集合在获取值时始终为0

问题描述

我有2个可观察的集合,其想法是用数据库中与表单相关的所有数据加载主集合。我将过滤此集合,并使用过滤后的结果设置Actor集合。我这样做的原因是为了减少将b64图像转换为较大集合的ImageSource所需的时间。我只想一次转换这些图像

“主收藏”表单的加载中填充了所需的项目,但是当我单击过滤器选项时,“主收藏”始终为0。我可以看到将119个条目加载到了收藏中

public ActorCollectionVM(INavigation navigation)
    {
        Navigation = navigation;
       
       // one time only populate
        Device.BeginInvokeOnMainThread(() =>
       {
           UserDialogs.Instance.ShowLoading("Loading");
           Database db = new Database();
           List<TMDB_Person> persons = db.GetAllPersons();

           ImageUtility util = new ImageUtility();

           foreach (TMDB_Person person in persons)
           {
               person.Profile_Thumb_Image = util.Base64ToImage(person.B64_Profile_Thumb_Image);
               MasterCollection.Add(person);
           }

           ActorCollection = MasterCollection;

           UserDialogs.Instance.HideLoading();
       });

    }


 private void LetterSearch_Click(object sender,EventArgs args)
    {
        ActorCollectionVM context = (ActorCollectionVM)BindingContext;
        context.ActorCollection.Clear();

        Button btn = (Button)sender;
        btn.TextColor = (Color)Application.Current.Resources["ThemeColor"];

        if (btn.Text != "ALL")
        {
            foreach (TMDB_Person person in context.MasterCollection.Where(x => x.Name[0].ToString().ToLower() == btn.Text.ToLower()))
                context.ActorCollection.Add(person);            
        }
        else
        {
            context.ActorCollection = context.MasterCollection;
            
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)