我很难将我视图中的StatusBarItem内容元素绑定到我的ViewModel中的子类属性,我正在使用MVVM-Light框架/
视图模型:
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" />
UserInfo属性是在创建viewModel之后设置的,因为有几个因素,但我认为我的属性已更改,这样就可以了。
对此的任何建议都将不胜感激。
答案 0 :(得分:2)
UserInfo
似乎没有吸气剂,绑定会运气不好。
(另外check for binding errors遇到绑定问题时,他们可能会告诉你他们所有的问题)
答案 1 :(得分:0)
我不太确定为什么你在UserInfo_属性中绑定了initials_属性。 如果没有UserInfo_属性的getter,则无法访问initials_属性。
我建议分别绑定后者。
答案 2 :(得分:0)
将getter添加到您的userinfo
public class PageMainViewModel : ViewModelBase
{
LoggedOnUserInfo UserInfo;
public LoggedOnUser UserInfo
{
get {return _UserInfo;}
set
{
_UserInfo = value;
RaisePropertyChanged("UserInfo");
}
}
}
和H.B.一样说 - 检查输出窗口是否存在绑定错误