我有一个类,其中有一些get;set;
属性。 OnPropertyChange
事件已计算出所有get;set;
属性的附加内容。
还有其他属性只有get;
,它返回一个简单的计算:
public Double D_F_Percent {
get {
return d_f / total;
}
}
这些属性绑定到TextBlocks。最初,值显示为 NaN 。但是稍后当我输入d_f
的值时,它会在OnPropertyChanged
中加到最后。
现在我的观点是在计算总数之后如何调用此属性并将其激活以便在TextBlock
中刷新?
答案 0 :(得分:2)
您可以随时触发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));
}
}