首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计时零部件特性的共享数据

设计时零部件特性的共享数据
EN

Stack Overflow用户
提问于 2012-11-02 23:40:41
回答 1查看 158关注 0票数 0

我有一个实现IExtenderProvider的组件。一个属性包含的设置应与用户在其项目中使用的组件的每个实例的设置相同。(也可以在每个实例中编辑)

在设计时在用户控件的多个实例之间共享信息的常用方法是什么?手动将其写入app.config不是解决方案,因为我需要此设置的图形用户界面。

提前感谢

Findnix

如果属性只是在设计时需要,那么前面提到的静态属性非常有用,但在我的例子中,在运行时也需要该属性。在这种情况下,每个实例都会将在其设计时设置的值设置为static属性。这意味着该值取决于实例的初始化顺序。

示例:

在设计时:

将组件添加到窗体1并将值设置为"Form1“

将组件添加到窗体2并将值设置为"Form2“

现在,两个实例在设计器中的值都是"Form2“,但在运行时,如果两个窗体都加载了,则该值始终是作为最后一个加载的值。

这是因为设计器不会更改实例的初始化值。

EN

回答 1

Stack Overflow用户

发布于 2012-11-03 02:22:40

要创建对所有实例和每个实例通用的属性,可以执行以下操作:

代码语言:javascript
复制
class MyObject
{
    // static members are common to all instances
    static string DefaultProperty1 = "Some Default";

    private string _Property1;
    public string Property1
    {
        get
        {
            // If the backing field is NULL, return the default
            if (_Property1 == null)
                return DefaultProperty1;
            // Otherwise, return the per-instance value
            return _Property1;
        }
        set { _Property1 = value; }
    }
}

如果你希望它是可改变的,DefaultProperty1也可以是一个属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13198510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档