我在ViewModel中有一个ObservableCollection<INode>
,其中INode
是一个接口。
View XAML如下:
<Windows x:Class="XXX.Window1"
xmlns:vw="clr-namespace:XXX.Views"
xmlns:vm="clr-namespace:XXX.ViewModels"
xmlns:n="clr-namespace:XXX.Models.Nodes"
... />
...
<vm:MyView>
<vw:MyView.DataContext>
<vm:MyViewModel>
<vm:ComponentViewModel.Nodes>
<n:MyNode /> <--- PROBLEM HERE
<n:MyNode />
</vm:ComponentViewModel.Nodes>
</vm:MyViewModel>
</vw:MyView.DataContext>
</vm:MyView>
...
现在代码在运行时可以正常工作,但在设计时窗口中却出现了如下错误提示:
无法创建 'MyNode' 类型的实例请问有什么解决办法吗?
interface INode
{
string Name { get; set; }
string Status { get; }
}
abstract class Node : INode
{
public string Name { get; set; }
public abstract string Status { get; }
public override int GetHashCode()
{
unchecked
{
return Name.GetHashCode(); // <--- PROBLEM WAS HERE, Name = null
}
}
}
class MyNode : Node
{
public override NodeStatus Status { get { return "test"; } }
}
MyNode
的定义以及该设计时异常的完整堆栈跟踪和错误信息。 - Daniel HilgarthMyNode
的代码。没有代码很难确定问题所在。很可能是构造函数抛出了异常。 - Daniel Hilgarth