我在xaml中有一个ContentControl,定义为:
<ContentControl Micro:View.Model="{Binding ProductionGrid}" />
我使用View.Model,因为控件嵌入在停靠面板中。
我的ViewModel已定义属性,并在ViewModel的构造函数中设置,并使用构造函数注入来创建实例。
View被实例化,但是我无法访问在ViewModel中创建的模型,它似乎在尝试从View的xaml.cs构造函数中获取实例时创建了一个新模型。
var model = Caliburn.Micro.ViewModelLocator.LocateForView(this) as DynamicDataGridViewModel;
如何在创建View时正确获取应与View关联的模型?
答案 0 :(得分:0)
如果ContentControl嵌入在停靠面板中,您只需将ContentControl命名为x:Name="ProductionGrid
“,就不需要Micro:View.Model="{Binding ProductionGrid}"
View实例化,但我无法访问该模型 在ViewModel中创建,它似乎在尝试时创建一个新模型 从View的xaml.cs构造函数中获取实例。
你的意思是ViewModel被实例化了吗?
所以绑定有效吗?我不得不看,但我不知道CM是否会从ProductionGrid找到ProductionGridView,它可能,我不确定。 ProductionGridViewModel和ProductionGridView可以工作。
你不需要在xaml.cs构造函数中编写任何代码,事实上,我删除了xaml.cs文件。