`
clingingboy
  • 浏览: 25689 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

初始化集合项依赖属性

WPF 
阅读更多

       在wpf自定义属性时,若此属性为集合类型的话,如下

public class DemoControl : Control
{  
    public List<string> Items
    {
        get { return (List<string>)GetValue(ItemsProperty); }
        
    }
    // Using a DependencyProperty as the backing store for Items.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty ItemsProperty =
        DependencyProperty.Register("Items", typeof(List<string>), typeof(DemoControl), new UIPropertyMetadata(new List<string>()));

}

 

使用情况

<local:DemoControl x:Name="demoControl1">
    <local:DemoControl.Items>
        <sys:String>string1</sys:String>
    </local:DemoControl.Items>
</local:DemoControl>
<local:DemoControl>
    <local:DemoControl.Items>
        <sys:String>string2</sys:String>
    </local:DemoControl.Items>
</local:DemoControl>

 

实际运行,Items属性的Count是2而不是1,这是因为其默认与所有实例共享.只需要在构造函数里初始化就可以了,设置为唯一的实例.

public DemoControl():base()
{
    SetValue(ItemsProperty, new List<string>()); 
}
msdn上有更详细的解释.
分享到:
评论

相关推荐

    boilerplatezero:Boilerplatezero 是 C# 源代码生成器的集合

    BPZ 中的依赖属性生成器通过识别DependencyProperty和DependencyPropertyKey字段来工作,这些字段是通过调用适当命名的Gen或GenAttached方法来初始化的。 发生这种情况时,源生成器会在您的类中添加私有静态类作为...

    spring.doc

    Lazy-init初始化bean的时机拓展: 15 3.4 Bean的作用域 16 Scope单例多例作用域拓展: 16 3.4.1 singleton(默认值) 16 3.4.2 prototype 17 3.4.3 Request 17 3.4.4 Session 18 3.4.5 Global session 18 3.4.6 指定...

    Spring 3 Reference中文

    4.4.4 延迟初始化bean . 55 4.4.5 自动装配协作者.. 55 4.4.5.1 自动装配的限制和缺点.. 56 4.4.5.2 从自动装配中排除bean. 57 4.4.6 方法注入. 57 4.4.6.1 查找方法注入.. 58 4.4....

    [Objective-c程序设计].杨正洪等.扫描版

    10.6.3 添加AllWeatherRadial类的初始化函数160 10.7 初始化函数规则160 10.8 小结161 第11章 特性162 11.1 修改特性值162 11.1.1 简化接口163 11.1.2 简化实现164 11.1.3 点表达式的妙用166 11.2 特性扩展167 ...

    模块和名字空间

    另一个惯例涉及模块初始化代码。在客户端的JavaScript中这尤其重要,因为那些操作Web浏览器中的文档的模块,在文档完成载入后,往往需要代码去触发模块。 下面的各节讨论名字空间和初始化。本章最后给出一个模块的...

    WPF编程宝典 part1

    4.1.4 WPF使用依赖项属性的方式 87 4.1.5 共享的依赖项属性 88 4.1.6 附加的依赖项属性 88 4.2 属性验证 90 4.2.1 验证回调 90 4.2.2 强制回调 91 4.3 小结 93 第5章 路由事件 95 5.1 理解路由事件 95 5.1.1 定义、...

    WPF编程宝典 part2

    4.1.4 WPF使用依赖项属性的方式 87 4.1.5 共享的依赖项属性 88 4.1.6 附加的依赖项属性 88 4.2 属性验证 90 4.2.1 验证回调 90 4.2.2 强制回调 91 4.3 小结 93 第5章 路由事件 95 5.1 理解路由事件 95 5.1.1 定义、...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    NHibernate参考文档 2.0.0 chm

    16.1.4. 初始化集合和代理(Initializing collections and proxies) 16.1.5. 使用批量抓取(Using batch fetching) 16.1.6. 使用子查询抓取(Using subselect fetching) 16.2. 二级缓存(The Second Level Cache...

    NHibernate中文帮组文档(2008.11月更新)

    16.1.4. 初始化集合和代理(Initializing collections and proxies) 16.1.5. 使用批量抓取(Using batch fetching) 16.1.6. 使用子查询抓取(Using subselect fetching) 16.2. 二级缓存(The Second Level Cache...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    软件需求管理计划

    需求管理计划 ...4.7 需求基线:指通过了评审的软件需求,通过建立这样一个基线,受控的系统需求成为进一步软件开发的出发点,对需求的变更被正式初始化、评估,其表现形式为用例描述的集合。 ......

    Spark 2.0.2 Spark 2.2 中文文档 本资源为网页,不是PDF

    Spark 的初始化 Shell 的使用 弹性分布式数据集(RDDS) 并行集合 外部数据集 RDD 操作 RDD 持久化 共享变量 Broadcast Variables (广播变量) Accumulators (累加器) 部署应用到集群中 使用 Java / ...

    数据库设计范式.doc

    所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能 有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的 属性,就可能需要定义一个新的实体,新的实体由...

    精通AngularJS part1

    按照设定的地区初始化应用282 将地区标识作为URL一部分带来的问题283 切换地区284 针对日期、数字和货币的自定义过滤器285 104小结287 第11章开发健壮的AngularJS应用289 111理解AngularJS的内部运作机制290 ...

Global site tag (gtag.js) - Google Analytics