从视图访问对象的 属性

Accessing object's property from View

我在 Models 文件夹中有一个 Booking class。当我导航到 class 时,我已经通过了 Booking 实例,现在如何从视图访问 Booking 的 属性?

我的视图模型:

public class BookingEditViewModel : ViewModelBase
{
    public Booking Booking { get;set; }

    public override void OnNavigatedTo(INavigationParameters parameters)
    {
        Booking = parameters.GetValue<Booking>("booking");
    }
}

我的看法:

<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 的一部分,接下来我该怎么做才能访问预订的 属性?

编辑: 如果我只是在 class 的构造函数中向 Booking 属性 添加任何值,Label 将打印出这些值。

    public BookingEditViewModel(BookingService bookingService, INavigationService navigationService) : base(navigationService)
    {
        this.bookingService = bookingService;
        Booking = new Booking { Id = 999, CustomerId = 2222, };
    }

所以问题似乎是当预订在 OnNavigatedTo 中更新时,更新不会传播回 UI。我已将 BindingMode 更改为 TwoWay,但仍然无法正常工作。我该如何解决?

好的,找到答案了。基本上我的问题与这个问题相同:

我只需要将 属性 更改为:

    public Booking Booking
    {
        get => booking;
        set => SetProperty(ref booking, value);
    }