718 messaggi dal 08 aprile 2009
Più che un problema di Xamarin.Form è un problema di logica.
Ho 2 campi testo QUANTITA' UM PRINCIPALE e QUANTITA' UM SECONDARIA.
al cambiare di una richiamo una funzione che mi va a modificare l'altra secondo un fattore di conversione.
La maschera è bindata e l'evento che viene richiamato di textchange collegato all'oggetto è il medesimo. Capisco quale stai cambiando dal tag associato.

E' una tecnica che utilizzavo in una app scritta direttamente in Xamarin.Android però non avevo il bind e quindi prima di modificare il Text scollegavo gli eventi,modificato il .text e poi li ricollegavo.

Adesso ho il seguente problema:
cambio QTA UM PRINCIPALE
richiamo funzione che mi normalizza l'altra quantità
mi cambia il bind
e mi si riscatena l'evento text change della QTA UM PRINCIPALE che secondo eventuali arrotondamenti protrebbe non essere esattamente quello che si era scritto in principio. Tipo l'utente scrive 2 e potrebbe ritrovarsi scritto 2,001.

Io al momento ho tamponato aggiungendo ai tag delle qta che normalisso il testo CHANGE. Quindi entranto nell'evento se trovo la stringa CHANGE nel tag lo tolgo e esco. Ma come soluzione non mi piace anche perchè gli utenti sono molto veloci e non sempre funziona. Quindi mi chiedo come posso fare.
Ho provato anche a scollegare e ricollegare gli eventi come facevo una volta ma anche qui non va mi si scatenano lo stesso.

Qualche idea?
11.862 messaggi dal 09 febbraio 2002
Contributi
Ciao Laura,
hai provato ad usare una sola proprietà che metti in binding con entrambe le caselle di testo? Nella prima, il valore verrà visualizzato così com'è, mentre nella seconda ci metti un value converter.

Il value converter è in grado di fare la conversione nei due sensi, quindi dovrebbe andar bene.
https://docs.microsoft.com/it-it/xamarin/xamarin-forms/app-fundamentals/data-binding/converters

Eventualmente, se il fattore di conversione dovesse cambiare da prodotto a prodotto, glielo puoi fornire dall'esterno tramite la proprietà ConverterParameter.
https://docs.microsoft.com/it-it/xamarin/xamarin-forms/app-fundamentals/data-binding/converters#binding-converter-parameters

In questo modo non dovrai usare TextChanged né slegare/ricollegare i gestori evento.

ciao,
Moreno

Enjoy learning and just keep making
718 messaggi dal 08 aprile 2009
La devo pensare con il converter perchè è un pò più complicata.
Innanzi tutto le qta sono 4. Io per semplicità della spiegazione ne ho messe 2.
La conversione dipende dai 4 fattori più determinate altre configurazioni parametrizzate che mi porto dietro nell'instanza della classe del documento.
11.862 messaggi dal 09 febbraio 2002
Contributi
Ok, per ora fai una prova con sole due caselle, giusto per verificare se l'idea può essere messa in pratica nel tuo caso.

La conversione dipende dai 4 fattori più determinate altre configurazioni parametrizzate

Puoi mettere tutti i valori in un unico oggetto creato appositamente per questo scopo. E poi lo dai binding alla proprietà ConverterParameter.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.