繁体   English   中英

Silverlight.Binding问题

[英]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)

在内部,绑定订阅INotifyPropertyChangedPropertyChanged事件。 绑定到“名称”属性时,它将检查事件参数的“属性”参数是否等于它绑定到的属性的名称(即:PropertyChangedEventArgs.PropertyName ==“名称”)。 如果不是,它将忽略该通知。

我认为您必须为Name创建属性并为Name添加到RaisePropertyChange

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM