2009-12-17 73 views
5

我在Silverlight页面上有一个TextBlock。Silverlight TextBlock在应用绑定之前可见性属性初始值

XAML

<TextBlock Text="*" x:Name="HasChangesTextBlock" Foreground="Red" FontSize="14" Visibility="{Binding Path=HasChanges, Converter={StaticResource BooleanToVisibilityConverter}}" 
          Margin="5,0,0,0"> 

</TextBlock> 

页面装载需要几分钟的时间。在应用绑定之前,我希望TextBlock被折叠,但Visibility属性的默认值是可见的。

有没有办法让TextBlock在应用绑定之前折叠?

回答

0

在你调用InitalizeComponent()之后,在页面的构造函数中如何呢?像这样:

public MyClass() 
{ 
    InitalizeComponent(); 
    HasChangesTextBlock.Visibility = Visiblility.Collapsed; 
} 
+0

如果我们做这样的引入的重大更改,比装订不起作用,因为它会被新的价值抹去。 – terkri 2009-12-17 16:18:05

8

我找到了解决方案。

我们应该添加FallbackValue =晕倒到绑定表达式

也就是说这是在Silverlight 4

XAML

<TextBlock Text="*" x:Name="HasPlayListChangesTextBlock" Foreground="Red" FontSize="14" 
           Visibility="{Binding Path=HasChanges, Converter={StaticResource BooleanToVisibilityConverter},FallbackValue=Collapsed}"> 

    </TextBlock> 
+0

这种变化以何种方式发生“突变”?它只是SL4的改进,我不明白这个改变如何破坏任何现有的代码? – AnthonyWJones 2009-12-17 22:50:13

+0

这正是我所需要的。谢谢。我同意AnthonyWJones的观点,尽管这不是一个“突变”。 – dcstraw 2011-02-17 20:30:02