コード例 #1
0
        // Replace the contents of a view (invoked by the layout manager)
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            var user = viewModel.Users[position];

            // Replace the contents of the view with that element
            var myHolder = holder as UserViewHolder;

            myHolder.FullNameView.Text     = user.FirstName + " " + user.LastName;
            myHolder.UsernameTextView.Text = "@" + user.Username;

            string topics = "";

            foreach (var topic in user.FollowedTopics)
            {
                topics += topic + " ";
            }

            myHolder.FollowedTopicsTextView.Text = topics;
            if (user.IsFollowed)
            {
                myHolder.FollowIcon.SetColorFilter(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.alert_green)));
                myHolder.FollowText.Text = "Following";
                myHolder.FollowText.SetTextColor(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.alert_green)));
            }

            myHolder.FollowButton.Click += async(sender, e) =>
            {
                if (!user.IsFollowed)
                {
                    myHolder.FollowIcon.SetColorFilter(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.alert_green)));
                    myHolder.FollowText.Text = "Following";
                    myHolder.FollowText.SetTextColor(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.alert_green)));

                    await viewModel.ExecuteFollowUsers(user.ObjectId);

                    viewModel.Users[position].IsFollowed = true;
                }
                else
                {
                    myHolder.FollowIcon.SetColorFilter(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.secondaryText)));
                    myHolder.FollowText.Text = "Follow";
                    myHolder.FollowText.SetTextColor(new Color(Android.Support.V4.Content.ContextCompat.GetColor(activity, Resource.Color.secondaryText)));

                    await viewModel.ExecuteUnfollowUsers(user.ObjectId);

                    viewModel.Users[position].IsFollowed = false;
                }
            };
        }