我有一个名为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); }
}
}
我的两个问题:
答案 0 :(得分:0)
这是不可能的。 DependencyProperty
只能在扩展DependencyObject
的类中创建。
DependencyObject服务和特性包括以下内容: 依赖属性托管支持。
- 通过调用Register方法注册依赖项属性,并将方法的返回值存储为类中的公共静态字段。
这可能吗?
不可能
如果不可能有替代实施,你可以建议吗?
使用INotifyPropertyChanged和IDataErrorInfo具有正常的CLR属性进行属性验证。 Example