2010-09-15 7 views
13

Come nascondere uno StringFormat quando i dati non sono present.Consider questo campioneCome nascondere StringFormat se i dati è nullo

<TextBlock Text="{Binding Amount, StringFormat=Total: {0:C}}" /> 

in questo caso se Importo è nullo, allora verrà mostrato solo Totale: .Come nascondere questo se l'importo è nullo o vuoto

+0

cosa stiamo considerando? – linuxuser27

risposta

22

"TargetNullValue" è quello che stavo cercando. Ho finito con questo e ha funzionato come un fascino

<TextBlock VerticalAlignment="Top" 
      Text="{Binding Path=TotalMonths, 
     TargetNullValue={x:Static System:String.Empty}, 
     StringFormat=Total: {0:C}}" /> 
+10

Sembra che dovresti dare credito a rudigrobler e aggiornare il tuo post originale con questi dettagli . – jpierson

+3

Non dimenticare di aggiungere questo spazio dei nomi: xmlns: System = "clr-namespace: System; assembly = mscorlib" – DeveloperDan

24

o si deve attuare una sorta di convertitore di valori (Example) o prendere in considerazione utilizzando la proprietà TargetNullValue sul legame (Example)

1

non c'è molto su cui lavorare qui, ma puoi ottenere qualcosa come questo con:

  • DataTrigger
  • ValueConverter
  • EventHandling in codice sottostante
  • Binding su una proprietà (dependency-) in una ViewModel incapsulare le vostre classi di business
+0

L'ho risolto usando un convertitore di valore ... ma ancora aiuta a conoscere un approccio alternativo ... BTW non posso gestire nella mia classe business poiché sto usando i datatables – biju

13
TargetNullValue='' 

Farà anche