我正在尝试为MVVMLight WPF重新配置我的MVVMLight SL5应用程序 我想我已经连接了所有正确的GalaSoft库,但在启动时我得到标题中显示的异常 获取MainPage的ViewModel时,它出现在ViewModelLocator中:
public MainViewModel Main
{
get
{
MainViewModel mvm = null;
try
{
mvm = ServiceLocator.Current.GetInstance<MainViewModel>();
}
catch (Exception xx)
{
System.Diagnostics.Debug.WriteLine(xx.Message);
}
return mvm;
}
}
异常来自GetInstance()调用 MainPage源自Window; DataContext在xaml中设置。
DataContext="{Binding Main, Source={StaticResource Locator}}"
任何关于出错的提示都将受到赞赏.... (目标.Net 4.5,GalaSoft WPF4 libs v4.0.30319)
答案 0 :(得分:8)
注册依赖属性时,ownerType
必须从DependencyObject
继承,MainViewModel不会。{/ p>
但是,鉴于您正在使用MVVM Light并且该属性被称为“UserName”,我建议您根本不使用依赖属性。而是使用带有INotifyPropertyChanged的常规属性。 MVVM指示灯中的ViewModelBase
有RaisePropertyChanged
来帮助您解决此问题。
依赖项属性通常用于用户控件。对于绑定到viewmodel的数据,INPC通常是要走的路。