문제

내가 있는 클래스가 중 일부 get;set; 속성입니다.고 OnPropertyChange 이벤트,계산의 모든 사람들 get;set; 속성입니다.다른 속성이 있는 get; 고 반환합니다 calcuation 같은 간단한:

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

이러한 특성은 textblock 은.초기에는 더 값으로 표시 NaN.그러나 나중에 때 내가 입력한 값 d_f, 며,그것은 추가 toal 에 OnPropertyChanged.

지금 내가 계산한 후 총 나는 어떻게 전화를 이 숙박 시설과 화재 그것은 그래서 그것을 얻는 갱신에서 TextBlock?

도움이 되었습니까?

해결책

을 발생시킬 수 있습니다 PropertyChanged 언제 바인딩 엔진 것입 업데이트합니다.

그것은 필요하지 않음 그것을 할 수에서 제공하였습니다.그래서 당신이 계산하는 방법 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