1

我正在尝试为 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)

4

1 回答 1

9

注册依赖属性时,ownerType必须继承自DependencyObject,而 MainViewModel 不会。

但是,鉴于您使用的是 MVVM Light 并且该属性称为“用户名”,我建议您根本不使用依赖属性。而是使用带有 INotifyPropertyChanged 的​​常规属性。ViewModelBaseMVVM 中的灯必须RaisePropertyChanged帮助您解决这个问题。

依赖属性通常用于用户控件。对于绑定到视图模型的数据,INPC 通常是要走的路。

于 2013-04-12T14:20:15.933 回答