// 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; } }; }