`
clingingboy
  • 浏览: 26506 次
  • 性别: 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上有更详细的解释.
分享到:
评论

相关推荐

    WPF 对象初始化器_1 对象初始化器_1

    对象初始化器是C# 3.0引入的一项新特性,它简化了对象创建的过程。在传统的面向对象编程中,创建对象后通常需要手动设置各个属性。这种方式不仅繁琐,而且容易出错。对象初始化器则提供了一种更简洁、更易读的方式来...

    详解C#中使用对象或集合的初始值设定项初始化的操作

    在C#编程中,对象和集合的初始值设定项初始化是一种方便的方法,可以在创建对象时直接设置其属性或成员的初始值,而无需显式调用构造函数。这使得代码更加简洁、易读。以下是对C#中对象和集合初始值设定项初始化的...

    c++ 类与对象课件,包括对象的初始化,对象的使用,构造函数和析构函数等等

    构造函数是用于初始化新创建的对象的特殊函数,其名称与类名相同且无返回类型。析构函数则是对象生命周期结束时自动调用的函数,用于清理对象可能占用的资源。 拷贝构造函数是另一个重要的构造函数,用于创建一个...

    求属性集的属性闭包

    - 首先初始化函数依赖集`fDepSet`。 - 通过调用`InPut(fDepSet)`函数获取用户输入的函数依赖集。 - 输入待求属性集,并将其转换成大写字母。 - 循环计算每个属性集的闭包,直到输入"END"退出循环。 5. **输入...

    超级详细的最小函数依赖集求解

    3. 左部最简:对于集合中的任何函数依赖,它的左侧没有多余的属性,即不存在一个真子集也能推出右侧的属性。 在求解最小函数依赖集的过程中,通常会采用一系列算法来逐步简化初始的函数依赖集。以下是求解最小函数...

    最小函数依赖

    以给定的例子来说明,我们有一个关系模式R,属性集U={A,B,C,D,E,G},以及初始函数依赖集F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG}。通过应用上述算法,我们逐步移除冗余依赖,最终得到最小函数依赖集F...

    最小函数依赖集的求法

    最小函数依赖集(Minimal Cover or Minimal Functional Dependency Set)是指一个函数依赖集中没有冗余的依赖,并且每个依赖的右部只包含一个属性的集合。本文将详细介绍如何求解最小函数依赖集,并通过具体实例来...

    JavaMore:初始化添加

    7. **集合初始化**:对于集合(如ArrayList,HashSet等),Java 5引入了匿名内部类和集合初始化语法,使得初始化更简洁,如`List&lt;String&gt; list = new ArrayList&lt;&gt;{ "a", "b", "c" };` 8. **模块系统初始化**:Java ...

    spring bean 属性总结

    - **depends-on属性**:指定Bean的依赖关系,确保某些Bean在其他Bean之前初始化。 #### `&lt;property&gt;`元素 `&lt;property&gt;`元素用于配置Bean的属性。它具有以下属性: - **name属性**:表示要设置的属性名称。 - **...

    基于属性的加密方法实现,cpabe属性加密JAVA源码实现

    1. **初始化系统参数**:使用KG生成系统参数和管理员密钥。 2. **用户注册**:管理员使用UKG为每个用户提供私钥,私钥与用户的属性相关联。 3. **加密数据**:数据发送者根据预设的策略(如“属性A且属性B”或“属性...

    Spring的3级缓存和循环引用的理解.doc

    **只用singletonObjects和singletonFactories**:虽然可以解决bean实例的生成,但由于缺少已初始化的bean(即一级缓存中的bean),所以在依赖注入时可能会遇到问题,因为早期的bean引用可能无法提供所有必要的属性。...

    基于PHP计算属性集的闭包.pdf

    程序实例说明了函数依赖集的初始化与Closure函数的调用方法,该方法采用的PHP程序结构简单,代码量少,易于实现与维护,可以独立解释执行,也可以嵌入到HTML中解释执行。 计算属性集闭包的方法可以借助于闭包函数,...

    约简程序_约简_属性约简_

    我们可以期待这个文件包含了初始化数据结构、定义约简算法、执行约简过程和可能的后处理等步骤。具体而言,它可能使用了如下的步骤: 1. **数据预处理**:加载数据集,可能包括特征和对应的决策类标签。 2. **构建...

    粗糙集属性约简算法

    1. **初始化**:定义了几个用于存储中间结果的变量,包括一个布尔标志数组`flag`用于标记是否保留当前属性,以及一个`distinctDecProperty`用于存储去重后的决策属性。 2. **属性去重**:通过比较决策属性列表中的...

    求属性集的闭包和求候选键的2个算法(JAVA实现&#41;.doc

    1. **初始化属性集:** 首先输入属性列集合 `cols` 和函数依赖集合 `funs`。 2. **计算初始闭包:** 将输入的属性集作为初始闭包 `result`。 3. **迭代计算闭包:** 对于每一个函数依赖,检查其左侧是否全部包含在...

    Spring Bean 加载顺序 .

    如果Bean定义了初始化回调方法,如`init-method`属性指定的方法,Spring会在初始化后执行这个方法。 9. **Bean的销毁**: 对于Singleton Bean,Spring在容器关闭时会调用`@PreDestroy`注解的方法和实现...

    数据库范式理解例题(推荐文档).doc

    - **表示方法**:如果属性集合Y中的每个属性的值构成的集合唯一地决定了属性集合X中的每个属性的值构成的集合,则属性集合X函数依赖于属性集合Y,表示为Y→X。 - **决定因素**:属性集合Y中的属性被称为函数依赖Y...

    手动动态添加 PropertyGrid 的数据行并显示 C# (非属性绑定方式)

    本篇文章将深入探讨如何在不依赖属性绑定的情况下,通过代码直接控制`PropertyGrid`的显示内容。 ### 1. `PropertyGrid`概述 `PropertyGrid`控件是.NET Framework提供的一种方便的数据对象属性编辑工具。它能够自动...

    候选码求解基本方法候选码求解基本方法

    1. **初始化**:`K`初始化为`U`中的所有属性。 2. **迭代属性**:对于`K`中的每一个属性`Ai`,计算`K-Ai`的闭包`F+`。 3. **判断闭包**:如果`K-Ai`的闭包`F+`包含了所有属性,则更新`K`为`K-Ai`。 4. **重复步骤**...

Global site tag (gtag.js) - Google Analytics