【问题标题】:Disposable custom controls in Xamarin.Forms/MAUIXamarin.Forms/MAUI 中的一次性自定义控件
【发布时间】:2022-08-14 19:17:07
【问题描述】:

许多教程和指南建议,当您在 Xamarin.Forms 或 .NET MAUI 中使用ContentView(或扩展另一个视图)创建自定义控件时,它应该在需要时实现IDisposable 接口。请参阅 herehere

据我所知,取消订阅事件可能很有用。

我的问题是:何时调用Dispose()

我在 Xamarin.Forms 中尝试了一些场景,涉及从自定义视图所在的页面移动并从导航堆栈中删除该页面,但这些操作都没有调用 Dispose() 方法。 我必须手动调用它吗?

    标签: user-interface xamarin.forms idisposable maui


    【解决方案1】:

    解决方案:在消息action/handler中取消订阅消息,或者使用在OnAppearing中订阅,在OnDisappearing中取消订阅的模式。

    MessagingCenter.Subscribe<string, DetailClass>(this, "NavigateDetail", async (detail) => 
    {
       MessagingCenter.Unsubscribe<string>(this, "NavigateDetail");
       await Naviation.PopAsync();
    });
    

    【讨论】:

    • 我实际上并不是在寻求“解决方案”。我想你没有完全理解我的问题。它是关于 Disposable 自定义控件实际被释放的时间。不管怎么说,还是要谢谢你。
    【解决方案2】:

    看来您必须手动完成。

    Javier Suarez 在他的视频下用Youtube comment 回答了这个问题。

    【讨论】:

      猜你喜欢
      • 2021-04-20
      • 2023-01-12
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多