如何从ContentView获取ContentPage的BindingContext?

2023-12-14

我有以下 Contentpage.content,我在其中设置了某些绑定上下文。

<StackLayout>
    <local:Post />  
    <local:Comments />
</StackLayout>

在 Post.xaml.cs (ContentView) 中,我尝试以这种方式获取 ContentPage 的绑定上下文,但它不起作用。

BindingContext = (PostViewModel)Parent.BindingContext;

如果我站在 ContentView 中,如何获取 ContentPage 的绑定上下文?


当你的构造函数被调用时,BindingContext可能尚未初始化。

所以,你应该等待BindingContext被更改为对其执行操作。

我认为答案是OnBindingContextChanged event. https://developer.xamarin.com/api/member/Xamarin.Forms.View.OnBindingContextChanged()

小样本:

        protected override void OnBindingContextChanged ()
        {
            base.OnBindingContextChanged ();

            //BindingContext should not be null at this point
            // and you may add your code here.
        }

笔记: 如果你有一个ContentView里面一个ContentPage,除非由另一个控件(例如使用 ListView 的 ItemTemplate 时)或您的代码显式设置,否则BindingContextContentView 的内容与 ContentPage 相同。

所以,没有必要称呼“家长”。

如果需要更多说明,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从ContentView获取ContentPage的BindingContext? 的相关文章

随机推荐

  • Azure DevOps - 有条件的包恢复

    通过 Azure DevOps 管道构建的解决方案有一些使用条件包引用的项目 例如
  • 了解 printf 的隐式转换

    C99 标准区分隐式和显式类型转换 6 3 转换 我猜想 但找不到 当目标类型比源类型具有更高的精度并且可以表示其值时 会执行隐式转换 这就是我认为从 INT 到 DOUBLE 会发生的情况 鉴于此 我看一下下面的例子 include
  • 如何使用 AngularJS/Ionic 作为 Backbone/Cordova 项目的一部分?

    我是 AngularJS Ionic 的新手 所以我请求你的帮助 给我们一些关于如何将 AngularJS Ionic 添加到 Backbone 项目的一部分 我们手头上有一个项目 是基于 Cordova 的 Backbone 框架构建的
  • 使用窗口迭代列表

    假设我们有这个列表 L 1 2 3 4 5 6 7 8 n 我们希望通过列表中包含 3 个元素的窗口获得此结果 l1 1 2 3 l2 2 3 4 l3 3 4 5 l4 4 5 6 l6 5 6 7 l7 6 7 8 直到我们迭代数组 并
  • OpenCV CascadeClassifier 错误

    我正在尝试通过网络摄像头进行人脸检测 但出现错误 级联分类器错误 经过一些测试 我发现这行代码产生错误 CascadeClassifier face cascade new CascadeClassifier 我得到的错误是 Excepti
  • 用指针反转 C 中的字符串文字[重复]

    这个问题在这里已经有答案了 我正在尝试使用指针反转字符串文字 通过我的代码收到 SIGSEGV 信号 head tail line char reverse char input int n char temp char head inpu
  • Google Appengine 每日预算未反映在配额中

    亲爱的 AppEngine 人员 我知道所有 AppEngine 支持已转移到 StackOverflow 如果我弄错了 那么很抱歉在这里发布此内容 我有一个非常严重的问题 希望您能帮助我解决 昨天 我在我的应用程序 friendbazaa
  • 如何通过java POI api从Excel工作表中删除所有公式?

    我们可以通过 cell setCellFormula null 从一个单元格中删除公式 但如果我想让整个表格公式免费 See Apache POI 站点这完全回答了你的问题
  • 如何在 PHP 中将一个图像包含在另一个图像中?

    如何在 PHP 中将一个图像包含在另一个图像中 我想像 twitterbackgrounds com 个性化背景那样做到这一点 有一张主图像 我们可以上传四张个人图像 之后它将显示为主图像的水印 我自己从来没有用过GD 但是看看手册中的示例
  • UWSGI 杀死工人的速度太快

    我在我的 web 应用程序中遇到了一个错误 该错误已经工作了一年多了 当我在新实例上切换到 UWSGI 以加快速度时 我遇到了这个错误 我的应用程序有 快速添加 模式窗口 允许用户将新客户添加到数据库中 并立即转到该用户的购物车 所以 该模
  • 在 VBA 中使用 Unicode 文件名(使用 Dir、FileSystemObject 等)

    I am 迭代通过文件夹中的文件 这意味着我不知道文件夹中的名称 并且有一个带有波兰语的文件 特点 The Dir函数将其转换为l这意味着以后无法找到该文件名 我已将要为其分配 dir 值的 var 声明为字符串 我也尝试过 FSO 和 g
  • 按特定键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个数组 Array 0 gt stdClass Object user id gt 1 ID gt 1 user login gt admin display name gt admin user emai
  • 将每条记录的所有列连接成一个条目

    我正在尝试将表的记录提取到 csv 文件中 SQL 查询很简单 SELECT FROM MY TABLE NAME 给出了假设的记录集 A B C D E F G H I J K L 我想要的是一个记录集 其中所有列都连接在一起 例如 A
  • PHP:将逗号分隔的值对字符串转换为数组

    我有逗号分隔的值对 我想将其转换为 php 中的关联数组 例子 Age 30 Weight 80 Height 180 转换成 Echo obj Weight 80 我的值没有用引号括起来有什么区别吗 我是说 重量 80 VS 重量 80
  • 设置scendantFocusability=“blocksDescendants”后,列表视图行中的文本视图无法单击

    我为列表视图编写了自定义项目布局 该布局有许多小部件 有些小部件有自己的点击监听器 当我单击该行时 有时列表视图的 onListItemClick 起作用 但有时不起作用 经过我一段时间的搜索 我找到了一种方法 设置机器人 descenda
  • 当游乐场被禁用时,apollo-server 返回缺少 GET 查询

    当我效仿的时候production aka playground is disabled 然后我回到我的根 http localhost 9000 我收到以下回复 400 Bad Request GET query missing 有没有办
  • 将当前类作为返回类型注释[重复]

    这个问题在这里已经有答案了 在 python 3 中 我可以创建参数并返回类型注释 例子 class Graph def init self V int E int edges list pass classmethod def fromf
  • 如何创建带有列标题和行标题的 UICollectionView?

    我想创建一个如下所示的 UICollectionView 它不可滚动或可编辑 我目前想知道如何为此编写布局 我猜它不会是的子类UICollectionViewFlowLayout 我可以想到很多方法 但很好奇是否有任何 正确 的方法 这些单
  • 为什么 PHPUnit 代码覆盖率不报告未调用的函数?

    我正在尝试获取我的一个项目的代码覆盖率 但未调用的函数和类不会纳入覆盖率计算 当大块代码被忽略时 很难看出哪些内容 很多 没有被覆盖 在下图中 我希望前三个函数的主体以红色突出显示 至少在执行的函数中未执行的行显示为红色 无论如何 我正在使
  • 如何从ContentView获取ContentPage的BindingContext?

    我有以下 Contentpage content 我在其中设置了某些绑定上下文