您的位置:首页 > 产品设计 > UI/UE

WPF Dependency property ,overrideMetaData issue

2008-08-05 14:36 435 查看
Seemstoknow,becauseMyStackPanel2hasregister,sowillnewaproperty,_metaMaphasnobasetype'smetadata,soifweuse:

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: