我目前正在制作电影应用,我需要能够将当前的电影对象发送到我的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总是为空。
答案 0 :(得分:1)
传递构造函数中的选定项
MovieList.Movie sending = movies[movieIndex];
MovieDetails movieDetails = new MovieDetails(sending);
await Navigation.PushModalAsync(movieDetails);
public MovieDetails (Movie selected)
{
InitializeComponent ();
this.BindingContext = selected;
}