Home > database >  Labels not showing my binding value although the value is set in the ViewModel
Labels not showing my binding value although the value is set in the ViewModel

Time:09-03

The Problem

The only two values showing up within my view are the FansNo and Description. I have exhausted my attempts at a fix. I do notice that when I change a value within one of the Forms9Patch Label's, the XAML Hot Reload causes all of the items to show correctly. I have not yet tested this on Xamarin.iOS but on Xamarin.Android this particular page is causing me quite a bit of trouble. I am targeting .NET Standard 2.1 using C# version 8.

Any help would be greatly appreciated.

My final attempt will be to uninstall modules that require .NET v2.1 and downgrade the target to v2.0. I will keep you posted as to whether this works or not - I do not have much hope though.

Debugging Information

These are some of the lines from the console that are printed from within the ViewModel - these prove that the data is being received correctly and that the bindable values (for example Title) are being set. Pulling to refresh (Invoking the PropertyChanged event) does not cause the values to show.

User Object: {"Artist":{"Name":"Matt Band","Description":"The best band in the area performing electronic stuffs","Genres":["Electro","D&B","Piano"],"MaxDistance":25,"MinNotice":3},"Venue":{"Name":null,"Description":null,"MinNotice":0},"FirstName":"Matthew","LastName":"Main","DOB":"2001-01-26T00:00:00.391Z","Followers":250,"Devices":["fgfafgadfgdafga"]}
Name: Matt Band

The Code

ViewModel:

using System;
using AV.Resources.Structures;
using System.Collections.ObjectModel;
using Xamarin.Essentials;
using Xamarin.Forms;
using Plugin.CloudFirestore;
using Newtonsoft.Json;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows.Input;

namespace AV.ViewModels
{
    public class ProfilePage : INotifyPropertyChanged
    {

        public event PropertyChangedEventHandler PropertyChanged;

        public ObservableCollection<User> UsersList { get; set; }
        public ObservableCollection<Post> Posts { get; set; }

        public double RowWidth { get; set; }
        public double RowSpacing { get; set; }
        public double RowStart { get; set; }

        public double RowHeight { get; set; }
        public double PostSpacing { get; set; }
        public Thickness ContentPadding { get; set; }

        public double TopLayoutHeight { get; set; }

        public string Title { get; set; }
        public string NameGenre { get; set; }
        public string Location { get; set; }
        public int FansNo { get; set; }
        public int RatingNo { get; set; }
        public string Description { get; set; }

        public ICommand comm
        {
            get
            {
                return new Command(() =>
                {
                    Console.WriteLine("Property Changed! Title is: "   Title);
                    PropertyChanged.Invoke(this, new PropertyChangedEventArgs(null));
                });
            }
        }

        public ProfilePage(string userID)
        {

            Init();
            LoadProfile(userID);

        }

        void Init()
        {

            PostSpacing = (DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density) * 0.023758;
            RowHeight = (DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density) * 0.058315;
            ContentPadding = new Thickness((DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * 0.086449, 0, (DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * 0.037383, (DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density) * 0.017279);

            RowWidth = (DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * 0.189252;
            RowSpacing = (DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * 0.046729;
            RowStart = (DeviceDisplay.MainDisplayInfo.Width / DeviceDisplay.MainDisplayInfo.Density) * 0.086449;

            TopLayoutHeight = (DeviceDisplay.MainDisplayInfo.Height / DeviceDisplay.MainDisplayInfo.Density) * 0.763499;

            UsersList = new ObservableCollection<User>()
            {
                new User
                {
                    FirstName = "User"
                },
                new User
                {
                    FirstName = "User"
                },
                new User
                {
                    FirstName = "User"
                },
                new User
                {
                    FirstName = "User"
                },
                new User
                {
                    FirstName = "User"
                },
                new User
                {
                    FirstName = "User"
                }
            };

        }

        async void LoadProfile(string userID)
        {

            Console.WriteLine("UserID is: "   userID);

            Posts = new ObservableCollection<Post>();

            IDocumentSnapshot doc = await App.Firestore.Collection("users").Document(userID).GetAsync();
            User user = doc.ToObject<User>();

            Console.WriteLine("User Object: "   JsonConvert.SerializeObject(user));

            //IQuery relatedQuery;
            if (!user.Artist.Equals(default(User.artist)))
            {
                Console.WriteLine("This user is an artist");
                Title = user.Artist.Name;
                NameGenre = user.Artist.Genres[0];
                Location = "Location";
                FansNo = user.Followers;
                RatingNo = 5;
                Description = user.Artist.Description;
                Console.WriteLine("Name: "   Title);
                PropertyChanged.Invoke(this, new PropertyChangedEventArgs(null));
                //relatedQuery = App.Firestore.Collection("users").WhereArrayContainsAny("Artist.Genres", user.artist.Genres);
            }
            else if (!user.Venue.Equals(default(User.venue)))
            {
                Console.WriteLine("This user is a venue");
                Title = "Venue";
                NameGenre = user.Venue.Name;
                Location = "Location";
                FansNo = user.Followers;
                RatingNo = 5;
                Description = user.Venue.Description;
            }
            else
            {
                Console.WriteLine("This user is neither");
                Console.WriteLine("Name is: "   user.Artist.Name);
                //regular user
            }

            IQuerySnapshot posts = await App.Firestore.Collection("users").Document(userID).Collection("posts").OrderBy("TimeStamp").LimitTo(8).GetAsync();
            foreach(Post post in posts.ToObjects<Post>())
            {
                Posts.Add(post);
            }

            PropertyChanged.Invoke(this, new PropertyChangedEventArgs(null));

        }

    }
}

View:

<?xml version="1.0" encoding="UTF-8" ?>
<ContentPage x:Name="contentPage" xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:Forms9Patch="clr-namespace:Forms9Patch;assembly=Forms9Patch" xmlns:ViewModels="clr-namespace:AV.ViewModels" xmlns:ext="clr-namespace:AV.Resources.Extensions" x:Class="AV.ProfilePage" NavigationPage.HasNavigationBar="False">
    <ContentPage.Resources>

        <DataTemplate x:Key="textTemplate">

            <StackLayout BackgroundColor="#F7F7F7">

                <RelativeLayout HeightRequest="{Binding Source={x:Reference contentPage}, Path=BindingContext.RowHeight}">

                    <Image Source="logo2" Aspect="AspectFit" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.077}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.077}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.031}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.231}" />
                    <Forms9Patch:Label Text="{Binding AuthorID}" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.287}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.333}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.138}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.276}" />
                    <Forms9Patch:Label Text="{Binding TimeStamp}" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.098}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.222}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.138}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.646}" />
                    <Forms9Patch:Label Text="{Binding Likes.Length}" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.047}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.333}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.847}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.426}" />
                    <Image Source="LikeButton" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.037}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.315}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.925}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.37}" />

                </RelativeLayout>
                <Label Text="{Binding Content}" FontFamily="Syne" Margin="{Binding Source={x:Reference contentPage}, Path=BindingContext.ContentPadding}" />

            </StackLayout>

        </DataTemplate>

        <DataTemplate x:Key="imageTemplate">

            <StackLayout BackgroundColor="#F7F7F7">

                <RelativeLayout HeightRequest="{Binding Source={x:Reference contentPage}, Path=BindingContext.RowHeight}">

                    <Image Source="logo2" Aspect="AspectFit" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.077}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.077}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.031}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.231}" />
                    <Forms9Patch:Label Text="{Binding AuthorID}" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.287}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.333}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.138}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.276}" />
                    <Forms9Patch:Label Text="{Binding TimeStamp}" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.098}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.222}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.138}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.646}" />
                    <Forms9Patch:Label Text="{Binding Likes.Length}" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.047}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.333}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.847}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.426}" />
                    <Image Source="LikeButton" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.037}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.315}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.925}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.37}" />

                </RelativeLayout>
                <Label Text="{Binding Content}" FontFamily="Syne" Margin="{Binding Source={x:Reference contentPage}, Path=BindingContext.ContentPadding}" />
                <Image Source="SampleImage" Aspect="AspectFit" BackgroundColor="Red" HorizontalOptions="CenterAndExpand" />

            </StackLayout>

        </DataTemplate>

        <ext:RowTypeSelector x:Key="selector" TextTemplate="{StaticResource textTemplate}" ImageTemplate="{StaticResource imageTemplate}" />

    </ContentPage.Resources>

    <RefreshView Command="{Binding comm}">
        <ScrollView>
            <StackLayout BackgroundColor="White" Spacing="{Binding PostSpacing}">

                <RelativeLayout HeightRequest="{Binding TopLayoutHeight}">

                    <Image BackgroundColor="Red" Aspect="AspectFit" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1.0}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.402}" />
                    <Forms9Patch:Label Text="{Binding Path=BindingContext.Title, Source={x:Reference contentPage}}" TextColor="Black" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.43}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.034}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.436}" />

                    <Forms9Patch:Label Text="Fans" TextColor="Black" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" HorizontalTextAlignment="Center" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.189}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.025}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.512}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.475}" />
                    <Forms9Patch:Label Text="{Binding FansNo}" TextColor="Black" FontSize="100" Lines="0" AutoFit="Width" HorizontalTextAlignment="Center" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.189}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.025}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.512}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.443}" />
                    <Forms9Patch:Label Text="Rating" TextColor="Black" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" HorizontalTextAlignment="Center" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.189}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.025}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.724}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.475}" />

                    <Forms9Patch:Label Text="{Binding NameGenre}" TextColor="Black" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.402}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.025}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.501}" />
                    <Forms9Patch:Label Text="{Binding Location}" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" FontSize="100" Lines="0" AutoFit="Width" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.827}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.023}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.53}" />
                    <Label Text="{Binding Description}" TextColor="Black" FontFamily="Syne" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.827}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.115}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.569}" />

                    <Frame BackgroundColor="Black" Padding="3" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.402}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.048}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.69}">
                        <Frame BackgroundColor="White" Padding="1" CornerRadius="0" InputTransparent="True">
                            <Forms9Patch:Label Text="Follow" TextColor="Black" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" InputTransparent="True" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Lines="0" AutoFit="Width" FontSize="100" />
                        </Frame>
                    </Frame>
                    <Frame BackgroundColor="Blue" Padding="4" CornerRadius="0" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.292}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.048}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.512}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.69}">
                        <Forms9Patch:Label Text="Chat" TextColor="White" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" InputTransparent="True" HorizontalTextAlignment="Center" VerticalTextAlignment="Center" Lines="0" AutoFit="Width" FontSize="100" />
                    </Frame>
                    <Frame BackgroundColor="Blue" Padding="6" CornerRadius="0" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.048}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.827}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.69}">
                        <Image Source="CalendarIcon" Aspect="AspectFit" />
                    </Frame>

                    <BoxView BackgroundColor="Black" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.827}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.004}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.766}" />

                    <Forms9Patch:Label Text="Artists" Lines="0" AutoFit="Width" FontSize="100" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.827}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.023}" RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.086}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.803}" />
                    <ScrollView Orientation="Horizontal" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=2}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.16}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.84}">

                        <CollectionView ItemsSource="{Binding UsersList}" TranslationX="{Binding RowStart}">

                            <CollectionView.ItemsLayout>

                                <LinearItemsLayout Orientation="Horizontal" ItemSpacing="{Binding Path=BindingContext.RowSpacing, Source={x:Reference contentPage}}" />

                            </CollectionView.ItemsLayout>

                            <CollectionView.ItemTemplate>

                                <DataTemplate>

                                    <RelativeLayout WidthRequest="{Binding Path=BindingContext.RowWidth, Source={x:Reference contentPage}}">

                                        <Image Source="logo2" Aspect="AspectFit" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1.0}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1.0}" />
                                        <Forms9Patch:Label Text="{Binding FirstName}" BackgroundColor="White" FontFamily="AV.Resources.Fonts.Syne-Bold.otf" TextColor="Black" VerticalTextAlignment="Center" HorizontalTextAlignment="Center" Lines="0" AutoFit="Width" FontSize="100" RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=1.0}" RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.159}" RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Height, Factor=0.841}" />

                                    </RelativeLayout>

                                </DataTemplate>

                            </CollectionView.ItemTemplate>

                        </CollectionView>

                    </ScrollView>

                </RelativeLayout>

                <RelativeLayout>

                    <CollectionView ItemsSource="{Binding Posts}" ItemTemplate="{StaticResource selector}">

                        <CollectionView.ItemsLayout>

                            <LinearItemsLayout Orientation="Vertical" ItemSpacing="{Binding PostSpacing}" />

                        </CollectionView.ItemsLayout>

                    </CollectionView>

                </RelativeLayout>

            </StackLayout>
        </ScrollView>
    </RefreshView>
</ContentPage>

CodePudding user response:

I see you have properties defined in the ViewModel but they are not raising property change when their value sets.

In your view model you can define the full property details and raise the change when they get updated like in this example:

private string  _title;
    public string Title
    {
        get 
        { 
            return _title; 
        }
        set 
        { 
            _title = value;
            OnPropertyChanged("Title");}
        } 

Also, I see you have inherited from INotifyPropertyChanged, make sure you have implemented the interface in your ViewModel correctly! Example:

 public void OnPropertyChanged(string propertyName)
 {
     if (PropertyChanged != null)
     {
         PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     }
 }

PS: Not sure if this will fix your issue. But at least this will make it easier for you to develop!

CodePudding user response:

this works

<Forms9Patch:Label Text="{Binding FansNo}" ...
               

this doesn't

<Forms9Patch:Label Text="{Binding Path=BindingContext.Title, Source={x:Reference contentPage}}" ...

Both properties are defined in the same place within the VM, so it stands to reason that modifying the not-working binding to match the working binding will fix it

<Forms9Patch:Label Text="{Binding Title}" ...


         
  • Related