2011-06-23 13 views
2

にデータソースからGUIを更新私は、オブジェクトのプロパティFirstNameMyPersonLastName、及びシルバー

public string FullName 
{ 
    get {return LastName + " " + FirstName;} 
    set {...} 
} 

私は私が姓、氏名およびフルネームを結合するUserControlにMyPersonに結合FullNameを有します3つのテクスチャボックス。私は姓または姓を変更すると

は今、私は、ユーザーコントロールへの「更新」のFullNameに指示する必要があります。

この「更新」コマンドは何が必要ですか?

のSilverlight 4

答えて

3

おそらくINotifyPropertyChangedインターフェイスになっているはずです。これであなたの人生はずっと楽になります。


例:それが変更されたプロパティのビューに通知することができるように

public class Person : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    private void NotifyPropertyChanged(String info) 
    { 
    if (PropertyChanged != null) 
    { 
     PropertyChanged(this, new PropertyChangedEventArgs(info)); 
    } 
    } 

    private String _FirstName; 
    private String _LastName; 

    public String FirstName 
    { 
    get 
    { 
     return this._FirstName; 
    } 
    set 
    { 
     if (this._FirstName != value) 
     { 
     this._FirstName = value; 
     this.NotifyPropertyChanged("FirstName"); 
     this.NotifyPropertyChanged("FullName"); 
     } 
    } 
    } 

    public String LastName 
    { 
    get 
    { 
     return this._LastName; 
    } 
    set 
    { 
     if (this._LastName != value) 
     { 
     this._LastName = value; 
     this.NotifyPropertyChanged("LastName"); 
     this.NotifyPropertyChanged("FullName"); 
     } 
    } 
    } 

    public String FullName 
    { 
    get 
    { 
     return String.Format("{0} {1}", this.LastName, this.FirstName); 
    } 
    } 
} 
+0

私はそれを実装しようとしました。 FirstNameに通知し、LastNameに通知しますが、これは発生していないようです。 – serhio

+0

@serhio:私の更新された回答を参照してください。 –

+0

変更されたプロパティだけでなく依存するプロパティも通知する必要があることがわかりました。これはちょっと恥ずかしいです...すべての依存プロパティを事前に知らなければ...しかし、... – serhio