Pregunta

Tengo una clase donde tomo algunos get;set; propiedades.Y OnPropertyChange evento, hemos calculado las sumas de todos aquellos get;set; propiedades.Hay otras propiedades que simplemente tienen get; y devuelve un cálculo simple como:

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

Estas propiedades están vinculadas a TextBlocks.Inicialmente, los valores aparecen como Yaya.Pero más tarde, cuando ingreso valores para d_f, y se suma al total en OnPropertyChanged.

Ahora mi punto es, después de calcular el total, ¿cómo llamo a esta propiedad y la activo para que se actualice en el TextBlock?

¿Fue útil?

Solución

Puedes disparar el PropertyChanged en cualquier momento y el motor de enlace actualizará la interfaz de usuario.

No es necesario hacerlo en un establecimiento de propiedad.Entonces en el método donde calculas total simplemente genera el evento con el nombre de tu propiedad calculado D_F_Percent.

Ver en la muestra 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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top