首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin找不到“ToolbarItems”的属性、可绑定属性或事件

Xamarin找不到“ToolbarItems”的属性、可绑定属性或事件
EN

Stack Overflow用户
提问于 2017-03-03 17:54:29
回答 2查看 10.4K关注 0票数 3

我想要做的是将工具栏添加到内容页面。

StackLayout下添加此代码后

代码语言:javascript
复制
<ContentPage.ToolbarItems>
   <ToolbarItem Icon="plus.png"/>
</ContentPage.ToolbarItems>

获取更多信息。如果我把上面的代码放在与顶部StackLayout相同的位置,工具栏就不会出现。

我遇到了一个错误,在其他地方找不到同样的错误。

这是我的xaml文件内容。

代码语言:javascript
复制
    <?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>

这就是错误。

代码语言:javascript
复制
No property, bindable property, or event found for 'ToolbarItems'

和完整的错误。

代码语言:javascript
复制
/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)

我在这里做错了什么?这个错误是关于什么的,以及如何修复它?!我相信你们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-03 22:20:14

此代码段

代码语言:javascript
复制
<ContentPage.ToolbarItems>
  <ToolbarItem Icon="plus.png"/>
</ContentPage.ToolbarItems>

根据上下文的不同,可以表示两件事:

  1. 让我们设置此ContentPage的ToolbarItems属性(或ToolbarItemsProperty BindableProperty) (如果父节点是ContentPage或
  2. )让我们将附加的BindableProperty ContentPage.ToolbarItemsProperty设置为当前节点

当您在StackLayout中使用它时,它被解释为第二个,但是这样的属性并不存在!所以它失败了。

将它直接放入ContentPage中,它就会像一个护身符一样工作

代码语言:javascript
复制
<ContentPage ...>
  <ContentPage.ToolbarItems>
    <ToolbarItem Icon="plus.png"/>
  </ContentPage.ToolbarItems>
  <StackLayout .../>
</ContentPage>

关于ToolbarItems未出现的问题,根据您运行的平台,可能需要将ContentPage打包到NavigationPage中。

票数 4
EN

Stack Overflow用户

发布于 2017-03-03 19:25:39

您需要在StackLayout之外添加ToolbarItems,请尝试执行以下操作:

代码语言:javascript
复制
<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">
    <ContentPage.ToolbarItems>
        <ToolbarItem Icon="plus.png"/>
    </ContentPage.ToolbarItems>
    <StackLayout>
        <!-- Your Content -->
    </StackLayout>
</ContentPage>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42575683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档