1 回答
TA贡献1789条经验 获得超10个赞
在此处查看有关自定义渲染器的文章:实现视图 它包含自定义渲染器的 OnElementChanged 方法的模板:
protected override void OnElementChanged (ElementChangedEventArgs<NativeListView> e)
{
base.OnElementChanged (e);
if (Control == null) {
// Instantiate the native control and assign it to the Control property with
// the SetNativeControl method
}
if (e.OldElement != null) {
// Unsubscribe from event handlers and cleanup any resources
}
if (e.NewElement != null) {
// Configure the control and subscribe to event handlers
}
}
因此,您应该在 OldElement 不为 null 时取消挂钩事件,并在出现 NewElement 时挂钩它们。
至于评论中的后续问题(如果上面的第二个没有被触发,我们是否应该取消订阅):我的理解是这两个对象的生命周期(所以渲染器和本机控件)是相同的,在这种情况下没有需要手动取消订阅事件。如果我错了,请纠正我。
- 1 回答
- 0 关注
- 133 浏览
添加回答
举报