xamarin使用pushmodalasync发送对象

时间:2017-07-11 17:10:28

标签: c# xamarin

我目前正在制作电影应用,我需要能够将当前的电影对象发送到我的movieDetailspage。但它会在设置bindingcontext之前创建moviedetails页面。也许我只是以错误的方式做这件事。但我无法弄清楚为什么它不起作用。这是我的代码

我的电影对象列表

List<MovieList.Movie> movies = new List<MovieList.Movie>();

我切换到moviedetails函数

 async void goToMovie(object sender, EventArgs args)
        {
            if(movies == null) {

            }
            else {
                MovieDetails movieDetails = new MovieDetails();

                MovieList.Movie sending = movies[movieIndex];

                movieDetails.ContextBinding = sending;

            await Navigation.PushModalAsync(movieDetails);
            }

        }

收到的moviedetails.cs

public MovieDetails ()
    {
        InitializeComponent ();

        MovieList.Movie recievedMovie = new MovieList.Movie();
        this.BindingContext = recievedMovie;

}

它不是整个文件,但我希望这就足够了。 我已经尝试过断点,它看起来像是在设置contextbinding之前创建了moviedetails,因此recievedMovie总是为空。

1 个答案:

答案 0 :(得分:1)

传递构造函数中的选定项

MovieList.Movie sending = movies[movieIndex];
MovieDetails movieDetails = new MovieDetails(sending);
await Navigation.PushModalAsync(movieDetails);


public MovieDetails (Movie selected)
{
        InitializeComponent ();

        this.BindingContext = selected;
}