gpt4 book ai didi

xamarin.forms - OnElementChanged(ElementChangedEventArgs 什么时候触发?

转载 作者:行者123 更新时间:2023-12-05 03:05:26 26 4
gpt4 key购买 nike

我在推送到导航堆栈的页面中有一个控件。弹出页面后,元素的渲染器的 OnElementChanged 被触发。

为什么在删除元素时要这样做?为什么要渲染一个不可见的组件?

除了某些元素配置代码崩溃之外,这不是问题。

最佳答案

当自定义渲染器开始执行时,第一个被触发的方法是 OnElementChanged。在此方法中,您可以访问属性并执行任何自定义。

请注意,此方法使用一个名为 ElementChangedEventArgs 的重要参数,该参数具有两个属性。

  1. 新元素
  2. 旧元素

NewElement 包含对 Xamarin Forms 控件的引用。 OldElement 包含对 Xamarin Forms 控件附加到的呈现器的引用。重要的是要注意事件的订阅取消订阅这两个属性,以避免内存泄漏

protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
{
base.OnElementChanged(e);

if (e.NewElement != null)
{
// Subscribe for events

e.NewElement.SizeChanged += XFButtonOnSizeChanged;
}
else if (e.OldElement != null)
{
// Unsubscribe from events

e.OldElement.SizeChanged -= XFButtonOnSizeChanged;
}
}

P.S.:通常我会分享一个链接到 official documentation ,但是在这种特殊情况下the realm academy我认为有更详细的解释。

关于xamarin.forms - OnElementChanged(ElementChangedEventArgs<T> 什么时候触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com