zoukankan      html  css  js  c++  java
  • WPF Dependency property ,overrideMetaData issue

     

    Seems to knowbecause MyStackPanel2 has  register, so will new a property, _metaMap has no base type's metadata, so if we use

     static MyStackPanel2()
            {
                MyStackPanel.IntDataProperty.OverrideMetadata(typeof(MyStackPanel2), new FrameworkPropertyMetadata(9));
     
                MyStackPanel.MinDateProperty.AddOwner(typeof(MyStackPanel2), new FrameworkPropertyMetadata(DateTime.Now, onMindateChange2));
            }

     

    The new metadata will merge basetype's metadata! For attached property, although register’s metaData is only stored at defaultmetaData _metaMap have no but overrideMetaData method will add new metadata to _metaMap, and will do merge too.

    And,MyStackPanel2 is sub class of MyStackPanel, so the merge will happen, if not sub class ,the merge will not happen either.like the code below:

    public partial class UserControlLabel : Label
    {
    static UserControlLabel()
            {
                MyStackPanel.MinDateProperty.OverrideMetadata(typeof(UserControlLabel), new FrameworkPropertyMetadata(DateTime.Now, onMinDateChangeUserControl));
     }
     
            public DateTime MinDate
            {
                get { return (DateTime)GetValue(MyStackPanel.MinDateProperty); }
                set { SetValue(MyStackPanel.MinDateProperty, value); }
            }
    }
     
    2. 

    This PropertyFromName hashtable is mainly use by the xaml->code process

    which can be found by analyzing the DependencyProperty.FromName() method using reflectors use by function..

    3. attched property register not use overridemetedata, because its ownertype can not be dependencyObject, _metadataMap need to use 
    DependencyObjectType.typeId as key.
    
  • 相关阅读:
    深度残差网络的理解
    迪士尼收购福克斯,传媒巨头江山瓦解?
    穷人的噩梦:来自金融公司的高利贷
    智能家居沦为家暴的“新工具”?
    墨西哥“死亡选举”导致近 150 名政客被杀
    推荐系统
    多线程编程
    two sum
    python 操作mysql
    天才大猩猩可可去世,享年 46 岁
  • 原文地址:https://www.cnblogs.com/liangouyang/p/1260954.html
Copyright © 2011-2022 走看看