[英]Silverlight.Binding issue
我有一个视图模型,其属性定义为:
private SomeEntity currentEntity;
public SomeEntity CurrentEntity
{
get { return currentEntity; }
set { currentEntity = value; RaisePropertyChanged(() => CurrentEntity); }
}
在一个视图中,我定义了对SomeEntity.Name
属性的绑定:
<TextBlock Text="{Binding CurrentEntity.Name }" />
这可行。 但是,当我用另一种方式写这行不通时, CurrentEntity
始终为null:
public string Name
{
get
{
return CurrentEntity != null ? CurrentEntity.Name : null;
}
set
{
CurrentEntity.Name = value;
RaisePropertyChanged(() => CurrentEntity);
}
}
<TextBlock Text="{Binding Name }" />
你有什么想法吗? 有什么解决方法吗?
使用RaisePropertyChanged( () => Name)
在内部,绑定订阅INotifyPropertyChanged
的PropertyChanged
事件。 绑定到“名称”属性时,它将检查事件参数的“属性”参数是否等于它绑定到的属性的名称(即:PropertyChangedEventArgs.PropertyName ==“名称”)。 如果不是,它将忽略该通知。
我认为您必须为Name创建属性并为Name添加到RaisePropertyChange
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.