문제와 관련된 데이터 바인딩을 가진 TextBlock
-
11-12-2019 - |
문제
내가 있는 클래스가 중 일부 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));
}
}
제휴하지 않습니다 StackOverflow