我的虚拟机有一个属于我的模型的属性Authorization
,它有一个ActiveService
的属性。
public Authorization Authorization
{
get
{
return this.authorization;
}
set
{
this.authorization = value;
NotifyOfPropertyChange();
}
}
我在我的ViewModel上创建了一个额外的属性,称为
Services
,以填充下拉列表: public IList<Service> Services
{
get { return services; }
set
{
services = value;
NotifyOfPropertyChange();
}
}
我的视图有一个名为“Services”的
combobox
控件。我对Caliburn及其约定的理解是这应该可以工作。然而它无法正确显示我的项目。列表中的项目数量正确,但它只显示“找不到Models.Service的视图”。是否有任何帮助指出我做错了什么?编辑:现在我尝试过手动设置DisplayMemberPath绑定,如下所示:
DisplayMemberPath="{Binding Authorization_ActiveService_Description}"
然后我添加了一个Override
到我的Service
对象的ToString()
方法中,如下所示:
public override string ToString()
{
return string.Format("{0}", this.Description);
}
这个代码可以运行,现在下拉菜单中显示了我的描述。但我有点困惑。我能够删除_Description
,它仍然可以正常工作。如果我去掉Override,它就完全不起作用。
为什么它不能对我的描述属性进行深度绑定?
SelectedItem
绑定在这里不起作用,但也许我在图像中漏掉了什么。 - Patryk Ćwiek