WPF Dependency property ,overrideMetaData issue
2008-08-05 14:36
435 查看
Seemstoknow,becauseMyStackPanel2hasregister,sowillnewaproperty,_metaMaphasnobasetype'smetadata,soifweuse:
Thenewmetadatawillmergebasetype'smetadata!Forattachedproperty,althoughregister’smetaDataisonlystoredatdefaultmetaData,_metaMaphaveno,butoverrideMetaDatamethodwilladdnewmetadatato_metaMap,andwilldomergetoo.
And,MyStackPanel2issubclassofMyStackPanel,sothemergewillhappen,ifnotsubclass,themergewillnothappeneither.likethecodebelow:
ThisPropertyFromNamehashtableismainlyusebythexaml->codeprocess
whichcanbefoundbyanalyzingtheDependencyProperty.FromName()methodusingreflector’s“useby”function..
staticMyStackPanel2()
{
MyStackPanel.IntDataProperty.OverrideMetadata(typeof(MyStackPanel2),newFrameworkPropertyMetadata(9));
MyStackPanel.MinDateProperty.AddOwner(typeof(MyStackPanel2),newFrameworkPropertyMetadata(DateTime.Now,onMindateChange2));
}
Thenewmetadatawillmergebasetype'smetadata!Forattachedproperty,althoughregister’smetaDataisonlystoredatdefaultmetaData,_metaMaphaveno,butoverrideMetaDatamethodwilladdnewmetadatato_metaMap,andwilldomergetoo.
And,MyStackPanel2issubclassofMyStackPanel,sothemergewillhappen,ifnotsubclass,themergewillnothappeneither.likethecodebelow:
publicpartialclassUserControlLabel:Label
{
staticUserControlLabel()
{
MyStackPanel.MinDateProperty.OverrideMetadata(typeof(UserControlLabel),newFrameworkPropertyMetadata(DateTime.Now,onMinDateChangeUserControl));
}
publicDateTimeMinDate
{
get{return(DateTime)GetValue(MyStackPanel.MinDateProperty);}
set{SetValue(MyStackPanel.MinDateProperty,value);}
}
}
2.
ThisPropertyFromNamehashtableismainlyusebythexaml->codeprocess
whichcanbefoundbyanalyzingtheDependencyProperty.FromName()methodusingreflector’s“useby”function..
3.attchedpropertyregisternotuseoverridemetedata,becauseitsownertypecannotbedependencyObject,_metadataMapneedtouse
DependencyObjectType.typeIdaskey.
相关文章推荐
- WPF - WPF Fundamentals - Properties - Dependency Property Metadata
- WPF DependencyProperty
- WPF里的DependencyProperty(4)
- WPF Background property does not point to a dependencyobject in path '(0).(1)'
- WPF里的DependencyProperty(3)
- WPF里的DependencyProperty(4)
- WPF里的DependencyProperty(4)
- (转)WPF Custom Control Dependency Property Gotcha
- WPF里的DependencyProperty(3)
- WPF 依赖属性,用户控件依赖属性(DependencyProperty 依赖属性、GetValue() SetValue() CLR属性包装器、SetBinding 数据绑定)
- WPF里的DependencyProperty(3)
- WPF里的DependencyProperty(5)
- WPF 资源字典样式引用导致的DependencyProperty.UnsetValue
- WPF中监视DependencyProperty的变化
- WPF中的依赖属性(Dependency Property)
- WPF里的DependencyProperty(4)
- WPF里的DependencyProperty(5)
- WPF里的DependencyProperty(4)
- [WPF系列]基础 Listening to Dependency Property change notifications of a given Element
- WPF Unleashed Chapter 3:Important New Concepts in WPF ---Dependency Properties(Property Value Inheritance)