0

私はおそらく単純な問題を抱えていますが、それを理解できないようです:

ItemsControlセットを持ち、データをとdatacontextのペアとして表示する を作成しました。CheckboxesTextBlocks

<ItemsControl Name="listTaskTypes" Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" ItemsSource="{Binding}" Margin="10,0,0,0" VerticalAlignment="Top" Loaded="listTaskTypes_Loaded">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox Name="checkBoxTypeId" Tag="{Binding Path=TaskTypeID}"/>
                <TextBlock FontSize="11pt" FontFamily="Helvetica" Text="{Binding Path=Text}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

私の問題は、のLoaded場合ItemsControl、チェックボックスがまだ存在しないことです。が完全にロードされたときにイベントを取得するにはどうすればよいですItemsControlか、またはこれは不可能ですか?

4

2 に答える 2

1

listTaskTypes.ItemContainerGenerator.StatusChanged イベント ハンドラーは、ItemsControl で作成された各項目について通知を提供できます。

うん Loaded は ItemsControl が読み込まれたイベントです。項目はその時点で作成されていない可能性があります。ここで何を達成しようとしているのか、ちょっと興味がありますか?. コードビハインドで CheckBox のインスタンスを取得しようとしていると思いますか? あなたが探しているものを達成するためにバインディングを使用するより良い方法があるかもしれません。

于 2009-10-20T09:02:48.337 に答える
0

DataContextChangedイベントをお試しください。

DataContext が変更されると、コントロールが読み込まれる必要があり、DataContext も設定されていることを確認できます。

お役に立てれば

于 2010-05-17T09:19:12.153 に答える