代码之家  ›  专栏  ›  技术社区  ›  D G

为什么我不能使用Text=“{Binding City,Source={BindingAddress}}”?

  •  0
  • D G  · 技术社区  · 1 年前

    给定两个模型:

    public class Person
    {
        public Address Address { get; set; } = null!;
    }
    public class Address
    {
        public string City { get; set; } = null!;
    }
    

    还有一页:

    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            BindingContext = new Person
            {
                Address = new Address { City = "New York" }
            };
        }
    }
    
    <Label Text="{Binding}" BindingContext="{Binding Address.City}" />
    

    上面的代码按预期工作,但为什么不能按如下方式重写呢?

    <Label Text="{Binding City, Source={Binding Address}}" />
    <Label Text="{Binding}" BindingContext="{Binding City, Source={Binding Address}}" />
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Blindy    1 年前

    为什么不能重写如下?

    绑定源是不可绑定的,这只是它的工作方式。然而,有一种更简单的方法可以正确书写:

    <Label Text="{Binding Address.City}" />