2012-01-18 44 views
0

我挣扎能够将StatusBarItem内容元素在我看来绑定到一个子类财产在我的ViewModel,我使用的MVVM光强框架/绑定到视图模型的子类属性

视图模型:

public class PageMainViewModel : ViewModelBase 
{ 
    LoggedOnUserInfo UserInfo; 

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

为了完全清晰的LoggedOnUser等级定义如下

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正在建立,并正在努力,因为我能看到其他绑定干活克,但我尝试绑定到我的XAML中的UserInfo.Initials属性产生一个空的结果。

XAML:

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

视图模型创建由于多种因素后,但我和我的PropertyChanged事件认为这将是确定用户信息属性设置。

任何建议,将不胜感激。

回答

2

你似乎没有吸气剂UserInfo,绑定将运气不佳。

(也check for binding errors具有绑定麻烦时,他们可能会告诉你所有的问题)

+0

由我自己明显的这个明显的错误有点尴尬。感谢所有帮助过你的人。 – Emlyn

0

我不明白为什么你有UserInfo_属性中绑定的initials_属性。 如果没有UserInfo_属性的getter,则无法访问initials_属性。

我建议分别绑定到后者。

0

吸气剂添加到您的用户信息

public class PageMainViewModel : ViewModelBase 
{ 
    LoggedOnUserInfo UserInfo; 

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

和像H.B.说 - 检查你的输出窗口的绑定错误

相关问题