Ho un WPF TextBox
associato a un numero di vista modello struttura Distance
attraverso Caliburn.Micro convenzione. Voglio essere in grado di personalizzare il formato di stringa preservando il binding della convenzione che è stato impostato Caliburn.Micro. Come dovrei farlo?Personalizzazione formato stringa in un Caliburn.Micro convenzione TextBox vincolato
Dal mio Vista Modello:
public double Distance
{
get { return _distance; }
set
{
_distance = value;
NotifyOfPropertyChange(() => Distance);
}
}
Dal mio Vista:
<TextBox x:Name="Distance"/>
Quando il Distance
è diverso da zero, voglio visualizzare il numero con un gruppo fisso di decimali e quando lo Distance
è zero, voglio che la casella di testo sia vuota.
Utilizzando esplicito legame posso associare la proprietà TextBox.Text
a Distance
, e poi posso impostare la StringFormat
simultaneamente:
<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
Tuttavia, l'esplicito Text
vincolante sarebbe poi cortocircuitare la Caliburn.Micro di denominazione convenzione vincolante. È possibile personalizzare il formato della stringa senza dover impostare contemporaneamente il percorso di binding della proprietà , in modo da poter contare unicamente su Caliburn.Micro per gestire il binding Distance
-to- TextBox
?
Le risposte brevi sono no. O si utilizza il binding generato da Caliburn o si deve scrivere l'intera espressione di binding come nel proprio esempio. – nemesv
La distanza non deve essere un numero, è un modello di ciò che si desidera essere nella vista. Quindi non rendere la proprietà un doppio, fai in modo che sia la stringa che desideri nella vista. –
Se non si riesce a collegare tutto manualmente, l'unica cosa vincolata dalla convenzione dei nomi è il puntello o l'azione vincolanti predefinita. Un legame non è troppo orribile da guardare è? – Charleh