2009-03-02 6 views
1

Ich habe ein Problem mit diesem XAML ... Wenn ich es ausführen, hängt es wegen der TextBox. (Mit "hängt" meine ich, dass die hosting aspx-Seite im Browser angezeigt wird, aber das usercontrol-Objekt nicht auf der Seite angezeigt wird und am unteren Rand des Internet Explorer-Fensters einige kleine grüne Balken erscheinen, die sich füllen, aber nie verschwinden .) Ich habe sowohl eine TextBox als auch einen TextBlock in meinem Code nur zum Testen. Es läuft gut, wenn ich die TextBox auskommentiere und nur den TextBlock lasse, also weiß ich, dass der DataContext gesetzt wird und die Bindung zu PatternName funktioniert. Es gibt keine Fehler im Ausgabefenster, die mir beim Debuggen helfen. Bitte helfen Sie! Ich habe Stunden mit diesem Problem verbracht. Was kann passieren?Silverlight 2 - DataContext/Binding Problem

<StackPanel x:Name="HolePatternStackPanel" > 
      <TextBlock Text="{Binding PatternName}" Width="75" /> 
      <TextBox Text="{Binding PatternName}" Height="25" Width="125"/> 
    </StackPanel> 

Hier ist der Code, den die Datacontext von einer rufenden ListBox.SelectionChanged Methode setzt:

private void lvHolePatterns_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    HolePatternStackPanel.DataContext = this.ActivePattern; 
} 

Antwort

0

Nun, ich habe mehr darüber gelernt ... Das Ganze ist ein Master-Detail UI-Design, und so hatte ich meine ListBox mit SelectedItem = "{Binding ActivePattern}", und anscheinend wurde eine Endlosschleife zwischen diesem und dem SelectionChanged Eventhandler eingerichtet.

So jetzt meine Frage wird nun, was gut ist SelectedItem überhaupt? Da ich einen SelectionChanged-Eventhandler hinzufügen musste, um den DataContext des Detailstack-Panels zu aktualisieren?

0

Sie würden nicht brauchen die Selection Ereignis zu verwenden, wenn Sie die Datacontext der Kontrollen mit dem SelectedItem

zum Beispiel gesetzt

<Grid DataContext="{Binding SelectedItem}"> 
    <TextBlock Text="{Binding some_field_in_selecteditem}" /> 
</Grid>