У меня есть класс бронирования внутри папки Models. Я уже прошел экземпляр Booking при переходе к классу, теперь как мне получить доступ к свойству Booking из представления?
Моя ViewModel:
public class BookingEditViewModel : ViewModelBase
{
public Booking Booking { get;set; }
public override void OnNavigatedTo(INavigationParameters parameters)
{
Booking = parameters.GetValue<Booking>("booking");
}
}
My View:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
xmlns:booking="clr-namespace:HelloWorldPrism.Models"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="HelloWorldPrism.Views.BookingEdit">
<StackLayout>
<Label Text="{Binding Booking.Id}"/>
<Label Text="{Binding Booking.CustomerId}"/>
</StackLayout>
</ContentPage>
Моя модель:
public class Booking
{
public int Id { get; set; }
public int CustomerId { get; set; }
}
Я добавил пространство имен Models как часть xmlns. Что мне делать дальше, чтобы получить доступ к свойству Booking?
Edit:
Если я просто добавлю какое-либо значение к свойству Booking внутри конструктора класса, Label выведет значения.
public BookingEditViewModel(BookingService bookingService, INavigationService navigationService) : base(navigationService)
{
this.bookingService = bookingService;
Booking = new Booking { Id = 999, CustomerId = 2222, };
}
Таким образом, проблема, по-видимому, заключается в том, что при обновлении бронирования в OnNavigatedTo обновление не распространяется обратно в пользовательский интерфейс. Я изменил BindingMode на TwoWay, все еще не работает. Как мне это решить?