2009-11-11 85 views
18

下面定义的这个文本块显示了窗口第一次加载的时间,因为它没有Datacontext(因此转换器代码没有运行),直到从另一个控件中选择了一个项目,例如树视图。WPF - 如何默认数据绑定文本块的可见性?

<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> 

那么,如何在没有DataContext时阻止它出现?

谢谢。

回答

43

要提供一个默认值(使用时绑定的目标无法找到)使用FallbackValue,例如:

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

这应该是这样的,当不存在的DataContext。

+1

谢谢GraemeF。 尽管我只是指出应该指定成员名称,即 可见性=“{绑定路径= IsDownloaded,FallbackValue =折叠}” – empo 2009-11-11 14:28:16

+0

糟糕!感谢您指出了这一点。固定。 – GraemeF 2009-11-11 15:16:18

+2

这只是给了我很多时间和精力,谢谢! – Jimmy 2014-05-01 14:46:46