gpt4 book ai didi

c# - 当 ContentPage 完成加载时如何获得通知

转载 作者:行者123 更新时间:2023-12-03 20:30:58 25 4
gpt4 key购买 nike

我有一些 XAML ContentPages 上面有 ContentView 对象。因此,通常我会根据在 ContentPage 中设置的 this.Width 和 this.Height 值来调整这些对象的大小。但是,如果在 ContentPage 加载后没有明确调用我的 ContentView 对象,则 Width 和 Height 值为空,因为这些值尚未设置。

我想弄清楚的是,如何告诉我的 ContentViews 在获得 Width 和 Height 值之前等待 ContentPage 完成加载?

最佳答案

Xamarin.Forms 提供了两个生命周期类型的事件:

  • OnAppearing
  • OnDisappearing

  • 可以在 Page 子类中覆盖。

    现在的事实, OnAppearing将在屏幕出现之前执行,当您想要一个需要在屏幕出现后立即执行的 Loaded 事件时,有一个解决方法。

    周围的工作
  • 在 View 模型中创建一个属性,如下所示。

  • private bool _toggleTemp;
    public bool ToggleTemp
    {
    get => _toggleTemp;
    set => SetProperty(ref _toggleTemp, value);
    }
  • 将以下行添加到构造函数的最后一行。 LoadingVm.ToggleTemp = true;
  • 在屏幕上添加一个 Switch 并将 IsVisible 设置为 false,如下所示。 (仅用于演示目的)

  • <Switch IsToggled="{Binding ToggleTemp}" Toggled="Switch_OnToggled" IsVisible="False" />
  • 现在,您可以在 Switch_OnToggled 中的 Page Loaded 中编写要编写的代码。

  • private async void Switch_OnToggled(object sender, ToggledEventArgs e)
    {
    /* Your code goes here... */
    }

    如果您有任何疑问,请告诉我

    关于c# - 当 ContentPage 完成加载时如何获得通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46982318/

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