微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。