1

この XAML に問題があります...実行すると、TextBox が原因でハングします。(「ハング」とは、ホスティング aspx ページがブラウザーに表示されることを意味しますが、usercontrol オブジェクトはページに表示されず、Internet Explorer ウィンドウの下部に小さな緑色のバーが表示されますが、いっぱいになることはありません。 .) テスト用に、コードに TextBox と TextBlock の両方があります。TextBox をコメントアウトして TextBlock だけを残すと問題なく動作するため、DataContext が設定され、PatternName へのバインドが機能することがわかります。デバッグに役立つ出力ウィンドウにエラーはありません。助けてください!私はこの問題に何時間も費やしました。何が起こっている可能性がありますか?

    <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;
}
4

2 に答える 2

0

コントロールの DataContext を SelectedItem で設定する場合、SelectionChanged イベントを使用する必要はありません。

例えば

<Grid DataContext="{Binding SelectedItem}">
  <TextBlock Text="{Binding some_field_in_selecteditem}" />
</Grid>
于 2009-03-23T21:20:11.810 に答える
0

さて、私はこれについてもっと学びました... これはすべてマスター/ディテール UI 設計であるため、ListBox で SelectedItem="{Binding ActivePattern}" を使用していました。それと SelectionChanged イベントハンドラ。

だから今、私の質問はとにかくSelectedItemが何であるかになりますか? 詳細スタック パネルの DataContext を更新するために、SelectionChanged イベント ハンドラを追加する必要があったのでしょうか。

于 2009-03-02T19:21:33.847 に答える