为什么我收到这样的消息?
属性'依赖关系'在此声明类型上无效。它仅对'assembly'声明有效。
public partial class MainWindow : Window
{
private OverviewViewModel _vm;
[Dependency]
public OverviewViewModel VM
{
set
{
_vm = value;
this.DataContext = _vm;
}
}
答案 0 :(得分:6)
您可能使用了错误的属性:DependencyAttribute
指示引用程序集[...]
何时加载依赖项
并且只能应用于程序集(而不能应用于您正在尝试的属性),例如:
[assembly: Dependency(/*...*/)]
答案 1 :(得分:5)
允许属性声明它们可以应用的内容(通过AttributeUsageAttribute)。默认值是任何,但在这种情况下它是“assembly”,这意味着:您只能在汇编级别应用它,您可以通过以下方式执行此操作:
[assembly:Dependency(...)]
如果这是您自己的属性,请检查与其关联的AttributeUsageAttribute,并确保它包含属性(使用管道|
来应用“或”)。
如果它不是您的属性,请仔细检查预期用途 - 您可能使用错误。
答案 2 :(得分:0)
尝试添加getter:
private OverviewViewModel _vm;
[Dependency]
public OverviewViewModel VM
{
set
{
_vm = value;
this.DataContext = _vm;
}
get
{
return _vm;
}
}
private OverviewViewModel _vm;
[Dependency]
public OverviewViewModel VM
{
set
{
_vm = value;
this.DataContext = _vm;
}
get
{
return _vm;
}
}