C# Unity解决依赖项属性元时抛出错误

C# Unity解决依赖项属性元时抛出错误,c#,dependency-injection,unity-container,prism,dependency-properties,C#,Dependency Injection,Unity Container,Prism,Dependency Properties,我有一个presentationmodel(viewmodel),其中包含一个dependencyy属性,注册如下 public Field SelectedField { get { return (Field)GetValue(SelectedFieldProperty); } set { SetValue(SelectedFieldProperty, value); } } public static readonly Dependency

我有一个presentationmodel(viewmodel),其中包含一个dependencyy属性,注册如下

public Field SelectedField
{
    get { return (Field)GetValue(SelectedFieldProperty); }
    set
    {
        SetValue(SelectedFieldProperty, value);
    }
}

public static readonly DependencyProperty SelectedFieldProperty =
    DependencyProperty.Register("SelectedField", typeof(Field), typeof(PresentationModel), new PropertyMetadata(new  PropertyChangedEventHandler(onPropertyChangedSelectedField)));

private static void onPropertyChangedSelectedField(object sender, PropertyChangedEventArgs e)
{
    throw new NotImplementedException();
}
我正在从如下控制器解析视图

 IPresentationModel presenter = this.Container.Resolve<IPresentationModel>();

我确定错误是由于propertymeta数据中提到的PropertyChangedEventHandler和DependencyPropertyChangedEventHandler引起的,但是,对于PropertyChangedCallBack,我没有遇到任何错误,视图加载良好。通过查看MSDN文档,它似乎用于不同的用途,这会有什么问题

根据文档,属性ChangedCallback是我相信您正在寻找的:

“表示当依赖项属性的有效属性值更改时调用的回调。”

至于属性ChangedEventHandler文档中说:

“表示当组件上的属性发生更改时,将处理(从INotifyPropertyChanged接口)引发的PropertyChanged事件的方法。”


这似乎暗示此委托用于通知公共属性的更改,例如当视图绑定到其视图模型中的属性时。因此,这两个委托似乎不“可交换”(它们甚至在不同的名称空间中定义。)

字段类型是什么?它有公共构造函数吗?请注意,您正在属性已更改的委托中触发NotImplementedException。字段设置为私有构造函数。。我甚至尝试过同样的方法来更改为公共构造函数..同样的例外。未实现的异常不应该导致这种情况,因为流不会一直到那里。我已经对异常进行了注释并尝试了。谢谢,但当我使用“PropertyChangedEventHandler”时,它不应该抛出错误,对吗?
public static readonly DependencyProperty SelectedFieldProperty =
    DependencyProperty.Register("SelectedField", typeof(Field), typeof(PresentationModel), new PropertyMetadata(new  PropertyChangedEventHandler(onPropertyChangedSelectedField)));