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 を使用していて、プロパティが "UserName" と呼ばれていることを考えると、依存関係プロパティをまったく使用しないことをお勧めします。代わりに、INotifyPropertyChanged で通常のプロパティを使用してください。ViewModelBaseMVVM ライトは、これRaisePropertyChangedを支援する必要があります。

依存関係プロパティは、通常、ユーザー コントロールに使用されます。ビューモデルのデータにバインドするには、通常、INPC が適しています。

于 2013-04-12T14:20:15.933 に答える