我一直在 Silverlight 5 中通过约定使用 Caliburn.Micro 的绑定,我很喜欢它。这是来自 ViewModel 的示例属性:
private String _vmStringProp = "";
public String VmStringProp
{
get
{
return _vmStringProp;
}
set
{
_vmStringProp = value;
NotifyOfPropertyChange(() => VmStringProp);
}
}
该属性仅通过命名绑定在视图中:
<TextBox x:Name="VmStringProp" />
这很好用。但是,如果我将其更改为 TextBlock 或 Lable(下面的示例),则会引发异常。
<sdk:Label x:Name="VmStringProp" />
如果您将其更改为像普通 Silverlight 一样绑定,它可以正常工作,但我宁愿在整个项目中保持一致,而不是通过约定进行一些绑定,而另一些则根据控件类型显式绑定。有谁知道为什么我不能通过约定与标签和文本块绑定?