看看这段代码:
var property = DependencyProperty.RegisterAttached(
"SomeAttachedProperty",
typeof(object),
typeof(View),
new PropertyMetadata(default(object)));
var sameProperty = DependencyProperty.RegisterAttached(
"SomeAttachedProperty",
typeof(object),
typeof(View),
new PropertyMetadata(default(object)));
WPF 中的第二次注册失败,AgrumentException
显示“属性已注册”(这是正确的)。
在 WPF 的反编译源中,DependencyProperty
我发现:
FromNameKey key = new FromNameKey(name, ownerType);
lock (Synchronized)
{
if (PropertyFromName.Contains(key))
{
throw new ArgumentException(SR.Get(SRID.PropertyAlreadyRegistered,
name, ownerType.Name));
}
}
但是在 SL 中,我没有找到任何对具有相同名称和类型的现有属性的检查。
所以问题是为什么 SL 不检查它而 WPF 呢?有一些基本的限制还是什么?
谢谢你。