MVVM - eseguire calcoli su campi bindati
-
martedì 21 febbraio 2012 19:02
Buona sera a tutti.
Situazione:
Classe MVVM con la property "DettagliDoc" bindato su una Window e quindi textBox bindati sui campi della property DettagliDoc: DettagliDoc.DDArticolo, DettagliDoc.Prezzo, ecc...
Oltre a questi campi, ci sono campi che modificano altri campi in base al valore che hanno; per esempio:
il campo DettagliDoc.Qt contiene di default il valore "1".
quando nel TextBox bindato con DettagliDoc.Qt cambio il valore per esempio da "1" a "2", voglio che il campo DettagliDoc.TotaleRiga diventi DettagliDoc.Qt * DettagliDoc.PrezzoUnitario.
Quanto nel textBox bindato con DettagliDoc.Sconto1 metto il 20% di sconto, voglio che il campo DettagliDoc.TotaleRiga diventi DettagliDoc.Qt * (DettagliDoc.PrezzoUnitario - (DettagliDoc.PrezzoUnitario * Sconto)), ecc...
Nella classe ViewModel ho fatto una property chiamata Qt:
public decimal? Qt
{
get
{
return MovMagDett.Quantita;
}
set
{
MovMagDett.Quantita = value;
CalcolaDettaglio();
}
}il metodo CalcolaDettaglio() dovrebbe fare tutti i calcoli in base ai valori ma quando modifico il TextBox bindato a Qt, non avviene nulla.
Questo è il binding:
Text="{Binding Path=Qt, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"Grazie.
Pranzo Stefano
Tutte le risposte
-
martedì 21 febbraio 2012 20:02
Devi far implementare alla tua classe l'interfaccia INotifyPropertyChanged. Quindi, quando modifichi il valore di Qt, devi effettuare la notifica per segnalare il cambiamento delle proprietà TotaleRiga.
Stesso discorso per tutte le proprietà che vanno ad influenzare il valore di TotaleRiga.
Dai un'occhiata a questa pagina per maggiori informazioni: http://msdn.microsoft.com/it-it/library/ms229614.aspx.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva- Modificato Marco MinervaMicrosoft Community Contributor martedì 21 febbraio 2012 20:03
- Proposto come risposta Irina TurcuMicrosoft Contingent Staff, Owner lunedì 5 marzo 2012 11:04
- Contrassegnato come risposta Stefano Pranzo lunedì 5 marzo 2012 12:20
-
martedì 28 febbraio 2012 10:14
Ciao!
Il suggerimento che ti ho dato ti ha aiutato a risolvere il problema?
Facci sapere, saremo felice di aiutarti.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva -
lunedì 5 marzo 2012 12:21
Si Marco. Scusa per il ritardo. tutto ok.
Grazie mille.
Pranzo Stefano
-
lunedì 5 marzo 2012 12:34
Nessun problema, l'importante è che tu abbia risolto il problema!
Alla prossima.
Marco Minerva [MCPD]
Blog: http://blogs.ugidotnet.org/marcom
Twitter: @marcominerva

