2009-12-17 7 views
5

Ich habe einen Textblock auf Silverlight Page.Silverlight TextBlock Sichtbarkeitseigenschaft Anfangswert, bevor die Bindung angewendet wird

XAML

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

</TextBlock> 

nimmt Seitenladen wenige Momente. Und bevor die Bindung angewendet wird, möchte ich, dass TextBlock minimiert wird, aber der Standardwert der Visibility-Eigenschaft ist Visible.

Gibt es eine Möglichkeit, TextBlock zu reduzieren, bevor Bindung angewendet wird?

Antwort

0

Wie wäre es im Konstruktor der Seite, nachdem Sie InitalizeComponent() aufgerufen haben? Etwas wie dieses:

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

wenn wir das tun wie das eingeführt wurde, Die Bindung funktioniert nicht, weil sie durch den neuen Wert gelöscht wird. – terkri

8

Ich fand die Lösung.

sollten wir fügen Sie einfach FallbackValue = Komprimiert an den Bindungs ​​Ausdruck

Das ist eine unterbrechende Änderung, die in Silverlight 4.

XAML

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

    </TextBlock> 
+0

Inwiefern ist diese Änderung eine "brechende Veränderung"? Es ist nur eine Verbesserung in SL4 Ich sehe nicht, wie diese Änderung bestehenden Code bricht? – AnthonyWJones

+0

Genau das habe ich gebraucht. Vielen Dank. Ich stimme AnthonyWJones zu, dass dies keine "brechende Veränderung" ist. – dcstraw

Verwandte Themen