如何使用MVVMLight初始化我的WPF应用程序?

时间:2011-05-18 09:43:10

标签: wpf mvvm inversion-of-control mvvm-light

我正在使用MVVM Light构建一个WPF应用程序,并且在将我的视图绑定到View模型时遇到了问题。我有一个视图模型,我在其中传递了一个IDataContext接口,它基本上传入了一个datacontext。然后我有一个View,我在顶部插入了以下语句

DataContext="{Binding MyViewModel, Source={StaticResource Locator}}"

在我的ViewModelLocator中,我添加了以下行:

IoC.Register<IDataContext, MyDataContext>();

IoC.Register<MyViewModel>();

在'MyViewModel'的构造函数中放置一个断点后,断点就会被击中。有什么我想念的,请帮忙???

2 个答案:

答案 0 :(得分:1)

您是否在ViewModelLocator类中为viewModel定义了一个公共getter,如下所示?

    public MyViewModel MainViewModel
    {
        get
        {
            return SimpleIoc.Default.GetInstance<MyViewModel>();
        }
    }

然后在视图绑定中使用“MainViewModel”,如下所示

DataContext="{Binding MainViewModel, Source={StaticResource Locator}}"

你看到了什么样的行为?没有datacontext设置的空视图窗口?显示视图时出现OR异常?

答案 1 :(得分:0)