2 Stimmen

Silverlight: Warum funktioniert dieser Bindungsausdruck nicht?

Ich habe Schwierigkeiten mit einem Bindungsausdruck in Silverlight 3 für Windows Phone 7.

<Grid x:Name="LayoutRoot" Background="Transparent">    
    <controls:Pivot ItemsSource="{Binding SectionViewModels}">
    <!-- ... -->
    <controls:Pivot.ItemTemplate>
        <DataTemplate>
            <Grid>
                <!-- this is the troublesome binding (for Visibility) -->
                <TextBlock Style="{StaticResource disabledText}" 
                           Visibility="{Binding ElementName=LayoutRoot, Path=DataContext.NoStoryContent}">
                    Do you have a network connection?
                </TextBlock>
                <!-- ... -->

Der Stil, in app.xaml :

<Style x:Key="disabledText" TargetType="TextBlock">
    <Setter Property="Foreground" Value="{StaticResource PhoneDisabledBrush}" />
    <Setter Property="TextWrapping" Value="Wrap" />
    <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeLarge}" />
</Style>

Code dahinter:

public Visibility NoStoryContent
{
    get
    {
        // trivial return value for debugging
        // no breakpoint here is hit
        return Visibility.Collapsed;
    }
}

public Sections()
{
    InitializeComponent();
    LayoutRoot.DataContext = this;
}

Was mache ich hier falsch? Ich vermute, dass ich einen Fehler im verbindlichen Ausdruck habe, aber ich bin nicht sicher, wo.

Update : Ich sehe keine Fehlermeldungen in der Debug-Ausgabe.

Aktualisierung 2 : Wenn ich sage 'funktioniert nicht', meine ich 'das Steuerelement ist immer sichtbar, obwohl ich versuche, es eingeklappt zu machen, und auf die Eigenschaft, an die die Sichtbarkeit gebunden ist, wird nie zugegriffen'.

1voto

Robert Levy Punkte 28351

Versuchen Sie einfach {Binding NoStoryContent}

0voto

Geoff Appleford Punkte 18140

Sie sollten Folgendes umsetzen iNotifyPropertyChanged in Ihrer Klasse

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X