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.
    
  • 相关阅读:
    Python网络爬虫第三弹《爬取get请求的页面数据》
    18.增量式爬虫
    17.基于scrapy-redis两种形式的分布式爬虫
    关于进程内存磁盘的一些命令
    linux其他命令
    ls -用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
    mkdir和touch
    ls -列出当前目录下所有的文件或者目录
    cat -用于连接文件并打印到标准输出设备上
    rm -移动文件
  • 原文地址:https://www.cnblogs.com/liangouyang/p/1260954.html
Copyright © 2011-2022 走看看