c# - Xamarin - 现在已过时的 ParentView 的替代方案

标签 c# listview binding xamarin.forms datatemplate

我正在创建一个自定义 DataTemplate,它会在其父 ListView 中触发一个事件。这是一个触发器:

public void OnItemActivated()
{
    ParentView.OnItemActivated(this);
}

'Element.ParentView' is obsolete: 'ParentView is obsolete as of version 2.1.0.请改用 Parent。 - Xamarin 说

Class types

在上图中你可以看到 ParentParentView 是不同的并且 ParentView 返回 object 我需要。我会尝试使用在这种情况下有效的 Parent.Parent ......这会一直有效吗?该层次结构是否始终相同?

所以我需要最好的方法来获取拥有“事件”itemlistview

也许有人可以建议我 listview 应该听他的 child 说话还是应该等待他们和他说话

最佳答案

我终于明白为什么 ParentView 过时了。 Xamarin 页面“文档结构”不仅由 Views 制作,还由 Elements 制作。

由于 View 的父 View 可能不是 View ,ParentView 变得无用。

我的解决方案

我使用 (this.Parent as Xamarin.Forms.View) 获取我的 ParentView,我的 Parent as View :)

注意事项

正如我所说,Parent 是一个 Element,有时是 View。所以当 Parent 不是 View 时,我的解决方案会崩溃(为什么 ParentView 已过时)

关于c# - Xamarin - 现在已过时的 ParentView 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47757350/

相关文章:

c# - 日期时间格式与文化不匹配

android - 要么删除如此透明的 ListView 分隔线颜色,要么设置背景而不重绘像素。 - 安卓

api - 如何在 OpenRasta 中显式指定方法绑定(bind)?

c# - 如何知道 Windows 应用商店应用类型可能抛出什么类型的异常?

c# - 使用 C# 创建编程语言

c# - 使用 DataBinding 更新标签

android - 以编程方式创建 ListView

android - 滚动时ListView "coming back"

Cocoa 绑定(bind)和应用程序首选项 - 崩溃

asp.net - 通过 .aspx 页面上的 <% 进行绑定(bind)