2009-03-02 4 views
1

이 XAML에 문제가 있습니다 ... 실행하면 TextBox 때문에 중단됩니다. ("응답하지 않음"은 브라우저에서 aspx 호스팅 페이지가 표시되지만 usercontrol 개체가 페이지에 나타나지 않고 채워지지만 절대로 사라지지 않는 Internet Explorer 창의 아래쪽에 작은 녹색 막대가 있음을 의미합니다. .) 테스트 용으로 TextBox와 TextBlock을 모두 코드에 포함하고 있습니다. TextBox를 주석 처리하고 TextBlock 만 남겨두면 DataContext가 설정되고 PatternName에 대한 바인딩이 작동한다는 것을 알 수 있으므로 정상적으로 실행됩니다. 디버그에 도움이되는 출력 창에는 오류가 없습니다. 도와주세요! 나는이 문제에 몇 시간을 보냈다. 무슨 일이 일어날 수 있습니까? 여기 Silverlight 2 - DataContext/Binding problem

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

가 호출 ListBox.SelectionChanged 방법에서의 DataContext를 설정하는 코드입니다 :

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

답변

0

글쎄, 난 이것에 대해 더 배웠어요 ...이 모든 것은 마스터 - 세부 정보입니다 UI 디자인, 그리고 그래서 내 ListBox SelectedItem = "{ActivePattern 바인딩"을 사용하여, 그리고 분명히, 일부 무한 루프 그 사이에 SelectionChanged eventhandler 설정 점점.

이제 내 질문에 이제 어떤 점에서 SelectedItem이 좋을까요? 세부 스택 패널의 DataContext를 업데이트하기 위해 SelectionChanged 이벤트 핸들러를 추가해야했기 때문에?

0

당신은 당신이 예를 들어 selectedItem가

와 컨트롤의 DataContext를 설정하면 인 selectionchanged 이벤트를 사용할 필요가 없습니다 것입니다

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