質問

いくつかのget;set;プロパティがあるクラスがあります。そしてOnPropertyChangeイベントは、すべてのget;set;プロパティの追加を計算しました。 get;を持つ他のプロパティがあり、そのような変更を簡単に戻す:

public Double D_F_Percent { 
    get {
        return d_f / total;
    }           
}
.

これらのプロパティはTextBlocksにバインドされています。最初に、値は Nan として現れる。しかし、後でd_fの値を入力し、OnPropertyChangedでTOALに追加されます。

私のポイントは合計を計算した後のものです。

役に立ちましたか?

解決

PropertyChangedをいつでも発射することができ、バインディングエンジンはUIを更新します。

プロパティの設定にする必要はありません。そのため、totalを計算する方法では、計算されたプロパティ名D_F_Percentを使用してイベントを発生させるだけです。

サンプルCalculateTotalメソッドの検索:

public class ViewModel : INotifyPropertyChanged
{
    private double d_f;
    public double D_F
    {
        get { return d_f; }
        set { d_f = value; FirePropertyChanged("D_F"); }
    }

    private double total;
    public double Total
    {
        get { return total; }
        set { total = value; FirePropertyChanged("Total"); }
    }

    public Double D_F_Percent
    {
        get { return d_f / total; }
    }

    public void CalculateTotal()
    {
        //Do some calculation set total
        FirePropertyChanged("D_F_Percent");
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public void FirePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top