【问题标题】:How to initialise my WPF app using MVVMLight?如何使用 MVVMLight 初始化我的 WPF 应用程序?
【发布时间】:2011-08-27 21:56:13
【问题描述】:

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

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

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

IoC.Register<IDataContext, MyDataContext>();

IoC.Register<MyViewModel>();

在“MyViewModel”的构造函数中放置一个断点后,断点就会被命中。有什么我遗漏的,请帮忙???

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    你看到什么样的行为?没有设置数据上下文的空视图窗口? OR 显示视图时出现异常?

    【讨论】:

    • 非常感谢,正要转储 MVVM Light。成功了,这是我的最后一块拼图
    【解决方案2】:

    【讨论】:

    • 感谢您的帮助,但我不是在寻找将 MVVM Light 集成到我的应用程序中的方法。我已经使用 MVVMlight 模板来创建我的项目、视图和 ViewModel,并且集成 MVVMlight 的东西已经在这些模板中实现。我需要有关如何初始化我的视图模型的帮助,因为我只看到了 Silverlight 示例而不是 WPF。有什么帮助???
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多