2009-03-02 33 views
1

Bu XAML ile ilgili bir sorun yaşıyorum ... Bunu çalıştırdığımda, TextBox nedeniyle askıda kalıyor. ("Kaldırma" ile, tarayıcıda aspx sayfasının gösterildiğini, ancak usercontrol nesnesinin sayfada görünmeyeceğini ve Internet Explorer penceresinin altındaki bazı küçük yeşil çubukların dolduğunu, ancak hiçbir zaman gitmeyeceğini söylüyorum. .) Kodumda hem test için hem bir TextBox hem de bir TextBlock var. TextBox'a yorum yapıp sadece TextBlock'u bırakırsam iyi çalışır, bu yüzden DataContext'in ayarlandığını ve PatternName'e bağlamanın çalıştığını biliyorum. Hata ayıklamada hata ayıklamada hata yok. Lütfen yardım et! Bu soruna saatler harcadım. Neler mümkün olabilir? İşte Silverlight 2 - DataContext/Binding problem

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

bir çağrıda ListBox.SelectionChanged yönteminden DataContext'i setleri kodudur:

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

cevap

0

Eh, ben bu konuda daha fazla öğrendim ... Bütün bunlar bir Master-Detay olduğunu UI tasarımı ve bu yüzden ListBox'umu SelectedItem = "{Binding ActivePattern}" kullanarak aldım ve görünüşe göre, o ve SelectionChanged olay işleyicisi arasında bazı sonsuz döngü ayarlanıyordu.

Şimdi benim sorum şimdi SelectedItem ne kadar iyi olur? Detay yığın panelinin DataContext'ini güncellemek için bir SelectionChanged olay işleyicisi eklemem gerektiğinden beri?

0

Sen örneğin SelectedItem

ile kontrollerin DataContext'i ayarlarsanız SelectionChanged olayını kullanmaya gerek olmaz

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