0

我有一个有一些get;set;属性的类。和OnPropertyChange事件,计算了所有这些get;set;属性的添加。还有其他属性,get;它返回一个简单的计算,例如:

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

这些属性绑定到 TextBlocks。最初,这些值显示为NaN。但后来当我输入 的值时d_f,它会被加到OnPropertyChanged.

现在我的意思是在计算总数之后我如何调用这个属性并触发它以便它在TextBlock?

4

1 回答 1

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));
    }
}
于 2012-05-19T12:33:01.010 回答