如何在标签中绑定嵌套属性
本文关键字:绑定 嵌套 属性 标签 | 更新日期: 2023-09-27 18:06:59
我想将一个对象属性绑定到一个标签。然而,我无法使绑定正常工作。我要绑定的对象来自一个天气API。
代码:public seald class CurrentWeatherRepsonse: WeatherItem
{
Temperature { Value {get; set;} }
}
public CurrentWeatherResponse WeatherDataUi
{
get { return _weatherData; }
set
{
_weatherData = value;
OnPropertyChanged();
}
}
//OnPropertyChanged Event
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
xaml: <Label Grid.Row="2" DataContext="{ Binding WeatherDataUi}" Content="{Binding Temperature.Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontSize="50"></Label>
请注意,我正在绑定一个元数据对象。
检查数据上下文。正如已经讨论的给定问题,您的数据上下文应该是weatherObserver
对象,因为您的属性是在该对象下声明的。只有在相同的级别上具有相同的属性名时,才能将一个视图与不同的对象共享为数据上下文。虽然不建议这样做。
同时在数据上下文中不能有多个对象
虽然在同一视图中引用多个对象的方法可以这样做:在xaml
中创建代理对象xmlns:proxy="Your namespace ;assembly=your assembly"
<proxy:BindingProxy x:Key="Proxy" Data="{Binding}" />
使用它来访问其他源来绑定来自不同对象的属性
{Binding Data.DifferentProperty, Source={StaticResource Proxy}
现在,即使标签数据上下文不同,这个绑定也会引用Procy对象实例,并从中获取绑定细节。