2012-01-18 35 views
0
私は、私はMVVM-ライトフレームワークを使用しています私のViewModelにサブクラスプロパティに私の見解ではStatusBarItemコンテンツ要素をバインドすることができるように苦労してい

/のViewModelの子クラスのプロパティにバインド

のViewModel:

public class LoggedOnUser : INotifyPropertyChanged 
{ 
    private string _Initials;   

    public event PropertyChangedEventHandler PropertyChanged;    

    public LoggedOnUser() 
    { 

    } 

    [DataMember] 
    public string Initials 
    { 
     get { return _Initials; } 
     set 
     { 
      _Initials = value; 
      OnPropertyChanged("Initials"); 
     } 
    } 

    protected void OnPropertyChanged(string propValue) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) 
     { 
      handler(this, new PropertyChangedEventArgs(propValue)); 
     } 
    } 

} 

私が働い他のバインディングを見ることができる午前としてのDataContextが設定されていると働いている私の見解を次のようにLoggedOnUserクラスが定義されているフル明確にするために

public class PageMainViewModel : ViewModelBase 
{ 
    LoggedOnUserInfo UserInfo; 

    public LoggedOnUser UserInfo 
    { 
     set 
     { 
      _UserInfo = value; 
      RaisePropertyChanged("UserInfo"); 
     } 
    } 
} 

g、しかし私のXAMLのUserInfo.Initialsプロパティにバインドしようとすると、空の結果が生成されます。

XAML:

<StatusBarItem Grid.Column="0" Content="{Binding UserInfo.Initials}" Margin="5,0,0,0" VerticalAlignment="Center" Focusable="False" /> 

のUserInfoプロパティがViewModelには作成された後、いくつかの要因に設定されていますが、私は、これはOKだろう私のPropertyChangedイベントと考えられています。

これに関するアドバイスをいただければ幸いです。

答えて

2

UserInfoにゲッターが表示されていないと、バインディングは不運になります。

(バインディングとのトラブルを抱えたときにもcheck for binding errors、彼らはおそらく、すべての問題について教えてくれます)

+0

私自身によってこの目立つ明白な間違いによって少し恥ずかしい。助けてくれた皆さん、ありがとう。 – Emlyn

0

あなたはUserInfo_属性の内側に拘束さinitials_属性を持っている理由私はかなりわかりません。 UserInfo_属性を取得しないとinitials_属性にアクセスできません。

私は後者に別個にバインドすることを提案します。

0

あなたのuserinfo

public class PageMainViewModel : ViewModelBase 
{ 
    LoggedOnUserInfo UserInfo; 

    public LoggedOnUser UserInfo 
    { 
    get {return _UserInfo;} 
    set 
    { 
     _UserInfo = value; 
     RaisePropertyChanged("UserInfo"); 
    } 
    } 
} 

とH.B.等にゲッターを追加言った - バインディングエラーの出力ウィンドウを確認してください

関連する問題