0

我想编写一个 DesignManager 类来监督和管理 Item 的值。

项目具有许多属性,并且相互依赖,并为彼此设置了某些价值规则。这些值在 UI 级别输入到 Item 变量中,DesignManager 检测更改,进行验证/计算并向 UI 报告(通过事件)。

我现在的问题是围绕属性设置器模式。我已经想到了两种完成关系的方法,每种方法都有其优点/缺点,希望得到建议使用哪一种:

// Syntax is cleaner
// DesignManager does not know about the change Item notifies DesignManager
// Nested collections can notify DesignManager, but there is problem of identifying the sender
DesignManager.Item.Property = value;

// Syntax is not clean
// Hard to support value setting of nested Items or collections within Items
// DesignManager immediately gets informed of the change via the calling UI logic.
DesignManager.SetItemProperty(value);

我不知道我更喜欢哪一个,因为我看不到与每一个相关的所有警告。目前,我最大的问题是 Item 中的嵌套集合。

如果哪位有这方面的经验,希望可以指教。谢谢你。

4

1 回答 1

0

这是来自 ac# 数据库 linq 映射的片段:

    public int id
    {
        get
        {
            return this._id;
        }
        set
        {
            if ((this._id != value))
            {
                this.OnidChanging(value);
                this.SendPropertyChanging();
                this._id = value;
                this.SendPropertyChanged("id");
                this.OnidChanged();
            }
        }
    }

Microsoft 采用第三种方式并使用属性,这些属性在 set 函数中触发事件。onchange - 事件在更改之前发送,因此可用于否决更改(未从 MS 实现)。Microsoft 不会对类的每个属性进行分隔,只有一个事件包含属性名称。在您的经理中,您可以订阅事件并根据需要验证/计算属性。

于 2012-10-25T04:16:55.350 回答