0

同様の質問がある場合は、お詫び申し上げます。検索で1つ見つかりませんでした。この質問は似ているように見えますが、十分に近いものではありません。

とにかく、タイトルのように、私がしていることが悪い習慣と見なされていないこと、または私が今働いている方法が完全に正しくないと感じているのでより良い方法がないことを確認したいだけです(私はデータバインディングはかなり新しいです)。

とにかく、コードに:

そのため、XAMLがバインドされているプロパティがいくつかあり、プロパティが変更されたときにXAMLを更新する必要があります。問題は、直接設定するのではなく、値を計算するプロパティを優先することです。それで、これはそれを達成するための良い/合法的な方法ですか?

    public IPolicy Policy
    {
        get { return _policy; }
        set
        {
            _policy = value;
            OnPropertyChanged("HasAdminFee");
            OnPropertyChanged("AdminFeeMessage");
        }
    }
    public bool HasAdminFee
    {
        get { return Policy != null && Policy.ChargeAdminFeesValue > 0; }
    }
    public string AdminFeeMessage
    {
        get { return HasAdminFee ? string.Format(HasAdminFeeMessage, PolicyFact.ChargeAdminFeesValue) : NoAdminFeeMessage; }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

ありがとう。

4

1 に答える 1

1

あなたはこれを正しい方法でやっています。それは効果的で受け入れられる習慣だと思います。現在作業中のWPFアプリでは、この方法を使用しています。

于 2012-09-17T14:51:29.067 に答える