c# - Xamarin Forms 导航问题

标签 c# xamarin xamarin.forms

我正在开发 Xamarin Forms 应用程序,但遇到了一个问题。

导航系统好像有点问题。我正在使用根 NavigationPage 来托管我的页面,它一直都运行良好,除了...

我有一个包含项目列表的子页面。点击时,每个项目都应在单独的页面上显示有关其自身的信息(无论是否为模态)。

但是,它只在第一次有效。第二次我尝试检查一个条目时,它似乎加载了两次(字体更粗,有点模糊),当我按回时,一层留在后面,而另一层随着关闭动画移动(这就是为什么我认为它是加载了两次)。

代码如下:

public partial class NotesPage : ContentPage {
protected override void OnAppearing()
    {
        base.OnAppearing();

        NotesList.ItemsSource = VM.Notes; // VM is my ViewModel, NotesList is a ListView defined in XAML
        NotesList.ItemSelected += async (sender, e) =>
        {
            if (e.SelectedItem == null) return;
            await Navigation.PushAsync(new NoteDetails((Note)e.Item));
            ((ListView)sender).SelectedItem = null;
        };
    }
}
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
                       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                       x:Class="Views.Notes.NoteDetails">
  <StackLayout>
    <Label Text="{Binding Title}" />
    <Label Text="{Binding Date}" />
    <Label Text="{Binding Author}" />
    <Label Text="{Binding Content}" />
  </StackLayout>
</ContentPage>

NoteDetails 类仅将 BindingContext 设置为传递的 Note 对象。 Note 类有四个属性:一个字符串标题、一个字符串日期(它的代码返回字段是一个 DateTime 对象,转换发生在 getter-setter 中)、一个字符串作者和一个字符串内容。所有细节都正确显示。

唯一的问题是第二次检查 - 它根本无法正常工作。 可能是什么问题?

最佳答案

当您关闭模式时,OnAppearing 会再次调用。

这意味着下次您点击 ItemSelected 时,代码将运行两次。

仅适用于 iOS虽然。

关于c# - Xamarin Forms 导航问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27902406/

相关文章:

c# - 从 Fragment 调用 Activity 方法

c# - 在四个不同的间隔中随机加倍

c# - 流畅的 NHibernate : Index was out of range exception with ReferencesAny mapping

ios - 如何根据缩放级别为 map 锻炼相关注释?

c# - 在 Windows Phone 8.1 中初始化 XLabs

xamarin - 如何在 Xamarin.Forms 中创建登录页面?

c# - Xamarin.Forms - 如何引发 slider ValueChanged 事件?

xamarin - WebAuthenticator -> 您必须将 WebAuthenticatorCallbackActivity 子类化并为其创建一个与您的 callbackUrl 匹配的 IntentFilter

c# - Autofac 通用接口(interface)工厂

c# - 找到正确的基地址