2009-12-17 71 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