Pergunta

Eu tenho uma aula onde tem alguns get;set; propriedades.E OnPropertyChange evento, calcularam adições de todos aqueles get;set; propriedades.Existem outras propriedades que apenas possuem get; e retorna um cálculo simples como:

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

Essas propriedades estão vinculadas a TextBlocks.Inicialmente, os valores aparecem como NaN.Mas mais tarde, quando eu inserir valores para d_f, e é somado para totalizar OnPropertyChanged.

Agora, meu ponto é, depois de calcular o total, como faço para chamar essa propriedade e acioná-la para que ela seja atualizada no TextBlock?

Foi útil?

Solução

Você pode disparar o PropertyChanged a qualquer momento e o mecanismo de vinculação atualizará a IU.

Não é necessário fazer isso em um configurador de propriedades.Então, no método onde você calcula total basta gerar o evento com o nome da propriedade calculada D_F_Percent.

Veja na amostra CalculateTotal método:

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));
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top