向扩展ObservableCollection的类添加DependencyProperty



我有一个叫做ObservableCollectionWithValidState的类,当它的一个子对象违反验证规则时,它会通知自己。

类:

child
child  <== violated a passed in Predicate and is now invalid.
child

当这种情况发生时,我希望在这个类上有一个DependencyProperty,我可以设置它可以绑定。

问题是,我的类扩展ObservableCollection<T>,但我不知道如何得到DependencyObject进入图片。

我正在粘贴类的初始声明以及我想添加的属性的示例(除非我可以扩展DependencyProperty,否则这将不起作用)。

public class ObservableCollectionWithIsValidState<T> : ObservableCollection<T> where T : INotifyPropertyChanged,
{
    public static readonly DependencyProperty IsValidPropertyProperty = DependencyProperty.Register("IsValid", typeof(bool), typeof(ObservableCollectionWithIsValidState<T>), new PropertyMetadata(true));
    public bool IsValid
    {
       get { return (bool)GetValue(IsValidPropertyProperty); }
       set { SetValue(IsValidPropertyProperty, value); }
    }
}

我的两个问题:

  1. 这可能吗?
  2. 如果这是不可能的,有一个替代的实现,你可以建议?

不可能。DependencyProperty只能在扩展DependencyObject的类中创建。

从MSDN-DependendyObject

DependencyObject的服务和特征包括:依赖属性托管支持。

  • 你通过调用register方法注册一个依赖属性,并将该方法的返回值作为一个公共静态字段存储在你的类中。

这可能吗?

不可能

如果不可能,你能建议一个替代的实现吗?

使用INotifyPropertyChanged和IDataErrorInfo与正常CLR属性进行属性验证。示例

相关内容

  • 没有找到相关文章

最新更新