2 votes

Comment changer chaque boîte de texte lorsque la valeur change (MVVM)

Comment puis-je changer mes zones de texte en fonction des autres ?

Auparavant, j'avais un bouton avec ICommand et maintenant les zones de texte devraient changer lorsque qu'une autre zone de texte change

En général, je veux convertir les nombres dans l'autre système, peu importe dans quelle zone de texte l'utilisateur écrit, comment puis-je faire cela ?

Une propriété en arrière-plan ressemble à ceci :

    public string Decimal
    {
        get { return Number.Decimal; }
        set
        {
            if (Number.Decimal != value)
            {
                Number.Decimal = value;
                RaisePropertyChanged("Decimal");
            }
        }
    }

4voto

Je suppose que le Number est votre modèle - il stocke le nombre à l'intérieur et gère correctement les conversions de nombres.

La solution la plus simple serait de simplement appeler une mise à jour de chaque propriété pertinente lorsqu'une d'entre elles est modifiée dans le ViewModel.

private void NumbersChanged()
{
    RaisePropertyChanged(nameof(Decimal));
    RaisePropertyChanged(nameof(Dual));
    RaisePropertyChanged(nameof(Hexa));
    RaisePropertyChanged(nameof(Octa));
}

public string Decimal
{
    get { return Number.Decimal; }
    set
    {
        if (Number.Decimal != value)
        {
            Number.Decimal = value;
            NumbersChanged();
        }
    }
}

public string Hexa
{
    get { return Number.Hexa; }
    set
    {
        if (Number.Hexa != value)
        {
            Number.Hexa = value;
            NumbersChanged();
        }
    }
}
//etc...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X