微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

指定的演员表无效尝试使用 Xamarin 将 ObservableCollection 显示到另一个页面

如何解决指定的演员表无效尝试使用 Xamarin 将 ObservableCollection 显示到另一个页面

我正在尝试将字符串从当前的 <Entry/> 传输到另一个页面,并在重复按下按钮时保存所有字符串。

我在第一页上的 xaml 如下所示:

<ImageButton Source="blackheart.png"
                    Grid.Row="1" 
                    Grid.Column="3"
                    WidthRequest="40"
                    HeightRequest="40"
                    Opacity="0.7"
                    Clicked="OnGetFavorites"/>

我在第一页上的 .cs 文件如下所示:

void OnGetFavorites(System.Object sender,System.EventArgs e)
    {
        Preferences.Set("cityName",_cityEntry.Text);

        var tabbedPage = this.Parent.Parent as TabbedPage;

        var page = (Favorites)tabbedPage.Children[2];

        page.AddCity(_cityEntry.Text);

        tabbedPage.CurrentPage = page;
    }

在我将显示 xaml 的第二页上,如下所示:

<StackLayout Padding="0,30,0">

            <ListView x:Name="listView"
                      ItemsSource="{Binding CityData}"/>
</StackLayout>

我在第二页上的 .cs 文件如下所示:

 public partial class Favorites : ContentPage
{
    ObservableCollection<string> CityData { get; set; }

    public Favorites()
    {
        InitializeComponent();
        NavigationPage.SetHasNavigationBar(this,false);

        CityData = new ObservableCollection<string>();
        this.BindingContext = this;
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
    }

    public void AddCity(string city)
    {
        CityData.Add(city);
    }
}

当我单击第一页上的按钮添加字符串时,我从 Main.cs 文件中收到错误消息:

Specified cast is not valid.

在这一行:

UIApplication.Main(args,null,"AppDelegate");

在这一步,调试器通过:var page = (Favorites)tabbedPage.Children[2]; 但是在这一步调试器出错:page.AddCity(_cityEntry.Text);

有没有办法解决这个错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。