Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xamarin No property, bindable property, or event found for 'ToolbarItems'

What i was trying to do is adding toolbar to a content page.

after adding this code under StackLayout

<ContentPage.ToolbarItems>
   <ToolbarItem Icon="plus.png"/>
</ContentPage.ToolbarItems>

for additional info. if i put the upper code in same position as top StackLayout the toolbar just wont appear.

i faced an error and could't find same error any where else.

this is my xaml file content.

    <?xml version="1.0" encoding="UTF-8"?>
<ContentPage 
    xmlns:ic="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin.Abstractions"
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="EodiRoad.SocialPage">



    <StackLayout>

        <ContentPage.ToolbarItems>
            <ToolbarItem Icon="plus.png"/>
        </ContentPage.ToolbarItems>

        <ListView x:Name="socialPostsListView" HasUnevenRows="true" IsPullToRefreshEnabled="true">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical" Padding="5">
                            <StackLayout Orientation="Horizontal" Padding="5">
                                <ic:CircleImage 
                                    x:Name="userProfileImage"
                                    HeightRequest="50"
                                    WidthRequest="50"
                                    Aspect="AspectFill"
                                    Source="{Binding post.uploader.userProfile.userThumbnail}"
                                />
                                <Label Text="{Binding post.uploader.username}"/>
                            </StackLayout>

                            <Image
                                x:Name="postImage"
                                Source="{Binding post.image}"
                                Aspect="AspectFill"
                            />

                            <StackLayout Orientation="Horizontal">
                                <Button Text="like"/>
                                <Button Text="share"/>
                            </StackLayout>

                            <StackLayout Orientation="Vertical" HorizontalOptions="StartAndExpand">
                                <Label Text="{Binding post.content}"/>
                                <Label Text="{Binding post.uploadedTime}" TextColor="Gray"/>
                            </StackLayout>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

    </StackLayout>


</ContentPage>

and this is the error.

No property, bindable property, or event found for 'ToolbarItems'

and the full error.

/Users/UZU/Google Drive/Apps/EodiRoad/EodiRoadXamarin/EodiRoad/EodiRoad/EodiRoad.Views.SocialPage.xaml(5,5): Error: Position 13:5. No property, bindable property, or event found for 'ToolbarItems' (EodiRoad)

what am i doing wrong here? and whats that error about, and how to fix it?! i believe in you guys.

like image 288
softmarshmallow Avatar asked Dec 18 '25 00:12

softmarshmallow


1 Answers

This snippet

<ContentPage.ToolbarItems>
  <ToolbarItem Icon="plus.png"/>
</ContentPage.ToolbarItems>

can mean 2 things, depending on context:

  1. Let's set the ToolbarItems property (or ToolbarItemsProperty BindableProperty) of this ContentPage (if the parent node is a ContentPage, or
  2. Let's set the Attached BindableProperty ContentPage.ToolbarItemsProperty to the current BindableObject.

As you are using this in a StackLayout, this is interpreted as the 2nd, but such a property doesn't exists ! so it fails.

Place that directly in the ContentPage and it'll work like a charm

<ContentPage ...>
  <ContentPage.ToolbarItems>
    <ToolbarItem Icon="plus.png"/>
  </ContentPage.ToolbarItems>
  <StackLayout .../>
</ContentPage>

About the ToolbarItems not appearing, depending on the platform you are running on, it might require the ContentPage to be packed in a NavigationPage.

like image 128
Stephane Delcroix Avatar answered Dec 20 '25 15:12

Stephane Delcroix



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!