0

Item の値を監視および管理する DesignManager クラスを作成したいと考えています。

アイテムには多くのプロパティがあり、相互に依存しており、相互に特定の値ルールを配置しています。値は UI レベルで Item 変数に入力され、DesignManager は変更を検出し、検証/計算を行い、(イベントを介して) UI にレポートします。

私の問題は、プロパティセッターパターンを中心に展開しています。私は関係を達成するために 2 つの方法を考えましたが、それぞれに長所と短所があります。

// 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);

それぞれに関連する注意事項をすべて見ることができないため、どちらを好むかわかりません。現在、私の最大の問題は、アイテムのネストされたコレクションにあります。

誰かがこれを経験した場合、希望はアドバイスできます。ありがとうございました。

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 はさらに 3 番目の方法に進み、set 関数内でイベントを発生させるプロパティを使用します。onching - イベントは変更の前に送信されるため、変更を拒否するために使用できます (MS からは実装されていません)。Microsoft は、クラスの各プロパティを分離していません。プロパティの名前が含まれるイベントは 1 つだけです。マネージャーでは、イベントをサブスクライブし、必要に応じてプロパティを検証/計算できます。

于 2012-10-25T04:16:55.350 に答える