可观察收集问题



我有一个类似下面给出的类/结构

公共类FileDetails{公共文件详细信息(){}

    public PrintFile PrintFileDetails { get; set; }
    public Boolean IsSelected { get; set; }
    public DateTime UploadTime { get; set; }
    public long FileSize { get; set; }
    public UploadTypes TypeOfUpload { get; set; }
    public DateTime DownloadStartTime {get;set;}
    public DateTime DownloadEndTime {get;set;}
    public bool ShouldDownload{get;set;}
}

在上面的代码段中,PrintFile是在XSD中定义的。我计划在ObservableConnection中部署此结构。如果我实现了NotifypropertychangedFileDetails,那么PrintFileDetails下的项目也将能够从INotifypropertychanged中获益。我认为我无法实现INotifyPropertyChanged,因为它是其他程序员共享的。

不,每个对象都必须实现INotifyPropertyChanged本身。PrintFile对象没有从FileDetails对象实现接口这一事实中获益。

此外,如果您从XSD生成这些类,您可以告诉生成器使用XSD.EXE上的/enableDataBinding命令行开关自动生成具有INotifyPropertyChanged实现的类。

脚注:将实现INotifyPropertyChanged的对象放入ObservableCollection不会有任何神奇的效果。对集合中的对象所做的更改不会激发集合的PropertyChanged事件(除非编写了相应的代码)。只有当集合对象的属性发生更改时,才会触发集合的PropertyChanged事件。

在大多数情况下,您使用可观察集合是因为您希望将其数据绑定到WPF或Silverlight UI元素,并且希望UI在数据更改时自动更新自身。数据绑定系统将注意到集合中的对象是否实现了IPropertyNotifyChanged,并将自动附加到PropertyChanged事件,以便UI知道数据何时更改。

相关内容

  • 没有找到相关文章

最新更新