2011-05-03 10 views
6

Hola chicos, ¿alguien podría explicarme por qué esto no arroja "VALUE IS DEFAULT"?Encuadernación WPF con StringFormat

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue=DEFAULT}" /> 

Hay algo complicado acerca de esta sintaxis que me falta. Gracias de antemano.

Respuesta

6

Encuadernación en WPF no tiene en cuenta StringFormat mientras que cae de nuevo a FallbackValue en caso de que falle.

Puede utilizar lo que sugiere leon o ir con PriorityBinding.

--EDIT--

Esto debería funcionar:

<TextBlock DataContext="{Binding Fail, FallbackValue=DEFAULT}" Text="{Binding StringFormat=VALUE IS {0}}" /> 
0

El valor de retorno predeterminado se utiliza para enlaces de prioridad, si desea mostrar "VALUE IS DEFAULT" para un valor de respaldo, intente lo siguiente.

<TextBlock Text="{Binding Fail, StringFormat=VALUE IS {0}, FallbackValue='VALUE IS DEFAULT'}" /> 
+0

¿Quiere decir si se usa FallbackBinding, StringFormat no? –

+0

Sí, he verificado que StringFormat se ignora cuando FallbackValue –

1

Creo que también podría funcionar usando las carreras dentro de la TextBlock:

 <TextBlock> 
      <Run Text="Value is : "/> 
      <Run Text="{Binding Fail,FallbackValue=Default}"/> 
    </TextBlock> 

?

Cuestiones relacionadas