我正在使用MVVM和Castle Windsor开始我的第一个WPF项目。我遵循将视图模型注入其视图构造函数的相当标准的方法,然后将其DataContext设置为视图模型。我不清楚的是如何/在哪里执行任何UI“初始化”,我希望在窗口加载后立即发生(在我的情况下,我想实例化一些用户控件“小部件”并将它们放在窗口的画布。)
据推测,我无法在窗口视图模型的构造函数中执行此操作,因为它将在视图的InitialiseComponent被调用之前调用。此外,我如何从视图模型中引用画布,它应该不了解视图?
作为尝试解决此问题的一部分,我创建了一个“DesktopManager”组件,负责将用户控件添加到画布,但我得到循环引用: -
DesktopManager仍然无法帮助我 - 回顾我之前的问题,我不知道如何/在何处调用它来创建小部件。我显然是以错误的方式解决这个问题,也许回答我之前的问题也会解决这个问题!
任何建议表示赞赏。
安德鲁
答案 0 :(得分:1)
如果您正在寻找在视图加载后在视图模型中执行代码的方法,我建议您将视图的Loaded事件绑定到视图模型中的命令。
在这里查看将事件绑定到命令的一种方法: http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/