2009-11-11 11 views
18

Este bloque de texto, definido a continuación, muestra cuando la ventana se carga primero porque no tiene Datacontext (y por lo tanto el código del convertidor no se ejecuta) hasta que se haya seleccionado un elemento de otro control, p. Vista de árbol.WPF: ¿cómo puedo predeterminar la visibilidad de un Textblock de datos?

<TextBlock 
    Name="tbkDocumentNotFound" 
    Style="{StaticResource StandardText}" 
    Margin="4,4,2,0" 
    TextWrapping="Wrap"          
    Visibility="{Binding Path=IsDownloaded, Converter={StaticResource docNotFoundVisibilityConverter}, Mode=TwoWay}" 
    Text="The document could not be found."> 
</TextBlock> 

Entonces, ¿cómo puedo evitar que aparezca cuando no tiene DataContext?

Gracias.

Respuesta

43

para proporcionar un valor por defecto (se utiliza cuando el objetivo de una unión no puede ser encontrado) se utiliza el FallbackValue, por ejemplo:

Visibility="{Binding Path=IsDownloaded, FallbackValue=Collapsed}" 

Este debería ser el caso cuando no hay DataContext.

+1

Gracias GraemeF. Aunque solo señalaré que solo debe especificarse el nombre del miembro, es decir, Visibility = "{Binding Path = IsDownloaded, FallbackValue = Collapsed}" – empo

+0

¡Vaya! Gracias por señalar eso. Fijo. – GraemeF

+2

Esto me ha ahorrado mucho tiempo y energía ¡GRACIAS! – Jimmy

Cuestiones relacionadas